2012-11-02 41 views
5

Tuần 1 năm 2013 bắt đầu từ 31-12-2012 kể từ thứ hai.GetWeekOfYear trả về kết quả sai?

Một cuộc gọi đến GetWeekOfYear với văn hóa nl-NL, FirstDayOfWeek.MondayCalendarWeekRule.FirstFourDayWeek lợi nhuận tuần số 53 cho thứ hai 31-12-2012 và tuần 1 cho thứ ba 2013/01/01. Làm thế nào mà thứ hai có thể có một số tuần khác với ngày thứ ba?

Tôi có thiếu gì đó không?

Trả lời

0

Năm bạn đã vượt qua trong ví dụ đầu tiên của bạn là năm 2012. Không phải năm 2013. Nó sẽ trở lại tuần của năm bạn đã vượt qua trong ngày của bạn.

+0

Điều đó hữu ích như thế nào? Khi tôi nhìn vào lịch giấy của tôi nó nói tuần 1 cho 31-12-2012. Tại sao mọi người lại muốn nếu khác? – Jeroen

+1

@Jeroen Cùng một lịch, nếu nó hiển thị năm 2012, sẽ hiển thị 01-01-2013 như tuần 53 của năm 2012, quá;) –

+0

Ở quốc gia của tôi (nl-NL) tuần 52 kết thúc 30-12-2012 và tuần 1 bắt đầu 31 -12-2012. Có thể ở các nước khác thì khác. Vậy là được rồi. Đó là những gì chúng tôi có CultureCodes cho :) – Jeroen

2

Bởi vì đó là tuần 53 của năm 2012. Nó sẽ trở lại tuần của năm trôi qua, dựa trên ngày bạn sử dụng (31-12-2012). Tuần 1 năm 2013 là cùng tuần với tuần 53 của năm 2012.

+0

Tôi nhận được nó. Hàm không trả về giá trị mà mọi người thường sử dụng khi họ xem tuần tại một lịch. Bạn có biết cách lấy số tuần đúng không? Sau khi tất cả hầu hết mọi người tuần 1 vẫn bắt đầu từ 31-12-2012. – Jeroen

+2

Tôi đã sử dụng chức năng tùy chỉnh này. Mà làm việc. http://codebetter.com/petervanooijen/2005/09/26/iso-weeknumbers-of-a-date-a-c-implementation/. Nhưng tôi vẫn không nhận được những gì sử dụng là chức năng GetWeekOfYear. – Jeroen

+0

@Jeroen Tuần đầu tiên của năm bắt đầu sau đó - nhưng bạn phải tính toán khi thứ hai <= ngày 1 xảy ra nếu bạn muốn báo cáo điều đó. –

Các vấn đề liên quan