foreach (tệp var trong Directory.GetFiles(@"C:\Users\Andrew\Desktop\Timesheets\2011", "*.xlsx", SearchOption.AllDirectories)){
Phiếu lương p = new Paycheck(DateTime.ParseExact(file.Substring(file.LastIndexOf("_" + 1), 6), "dd/mm/yy", null), file);
_Paychecks.Add(p);
}
Tôi đang cố gắng lấy tên tệp mà chương trình của tôi sẽ quét DateTime
. DateTime
Định dạng là dd/mm/yy. Mỗi lần tôi gặp dòng mã này:
Phiếu lương p = phiếu lương mới(DateTime.ParseExact(file.Substring(file.LastIndexOf("_"+ 1), 6), "dd/mm/yy", null), file);
Chương trình làm gián đoạn ứng dụng mà không làm gì cả. Nó không cung cấp cho tôi thông báo lỗi và bất kỳ thông tin nào về những gì đang xảy ra. Tôi chắc chắn rằng tôi đã viết điều này theo một cách nào đó khó hiểu, vì vậy hãy cho tôi biết bạn cần làm rõ điều gì.
Đây là tên tệp mẫu để đề phòng;
Biểu thời gian và phí hàng tuần_AT_073111
Bạn cần sử dụng chữ hoaMM
để bày tỏTháng
, thay vì chữ thườngmm
Từ chuỗi ngày ví dụ của bạn 07312011
看起来像
Hai chữ số đầu tiên - 07
=> tháng
Hai chữ số tiếp theo - 31
=> Ngày
Bốn chữ số tiếp theo - 2011
=> Năm
Vì vậy định dạng của bạn phải làMMdyyyy
biên tập:Bạn cần phải đóng LastIndexOf()
Thêm 1 sau hàm
Hãy thử điều này:
Phiếu lương p = Phiếu lương mới(DateTime.ParseExact(file.Substring(
file.LastIndexOf("_") + 1, 6), "MMddyyyy", null), file);
Tôi là một lập trình viên xuất sắc, rất giỏi!