2012-11-02 11 views
5

Pierwszy tydzień 2013 r. Rozpoczyna się 31-12-2012, ponieważ jest poniedziałek.GetWeekOfYear zwraca nieprawidłowy wynik?

Wywołanie GetWeekOfYear z kulturą nl-NL, FirstDayOfWeek.Monday i CalendarWeekRule.FirstFourDayWeek zwrotów tydzień numer 53 na poniedziałek 31-12-2012 i 1 tygodniu na wtorek 1-1-2013. Jak ten poniedziałek może mieć inny numer tygodnia niż wtorek?

Czy brakuje mi czegoś?

Odpowiedz

0

Rok, w którym minął pierwszy przykład, to rok 2012. Nie 2013. Zwraca tydzień w roku, w którym upłynął termin.

+0

Jak to przydatne? Kiedy patrzę na mój kalendarz papierowy, jest to tydzień 1 na 31-12-2012. Dlaczego ktoś miałby chcieć, gdyby było inaczej? – Jeroen

+1

@Jeroen Ten sam kalendarz, jeśli pokazuje rok 2012, również pokaże 01-01-2013 jako tydzień 53 2012;) –

+0

W moim kraju (nl-NL) tydzień 52 kończy się 30-12-2012, a tydzień 1 rozpoczyna się 31 -12-2012. Może w innych krajach jest inaczej. W porządku. To właśnie mamy CultureCodes dla :) – Jeroen

2

Ponieważ jest to tydzień 53 z 2012 roku. Zwróci to tydzień z roku upływającego w zależności od daty użycia (31-12-2012). 1 tydzień 2013 r. To ten sam tydzień, co tydzień 53 z 2012 r.

+0

Rozumiem. Funkcja nie zwraca wartości, którą normalnie używają ludzie, gdy patrzą na tygodniowy numer w kalendarzu. Czy wiesz, jak uzyskać prawidłowy numer tygodnia? W końcu dla większości ludzi tydzień 1 nadal zaczyna się 31-12-2012. – Jeroen

+2

Użyłem tej niestandardowej funkcji. Który działa. http://codebetter.com/petervanooijen/2005/09/26/iso-weeknumbers-of-a-date-a-c-implementation/. Ale nadal nie rozumiem, jaki jest pożytek z funkcji GetWeekOfYear. – Jeroen

+0

@Jeroen Najpierw zaczyna się pierwszy tydzień roku - ale musisz to obliczyć, kiedy poniedziałek <= 1 stycznia będzie, jeśli chcesz to zgłosić. –

Powiązane problemy