2012-11-02 21 views
5

Hafta 1, 2013 pazartesi olduğu için 31-12-2012 başlar.GetWeekOfYear yanlış sonuç döndürüyor?

salı 2013/01/01 için kültür nl-NL, FirstDayOfWeek.Monday ve Pazartesi 31-12-2012 için CalendarWeekRule.FirstFourDayWeek getiriler hafta numarası 53 ve haftada 1 ile GetWeekOfYear için çağrı. Bu pazartesi salıdan nasıl farklı bir hafta sayısına sahip olabilir?

Bir şey mi eksik?

cevap

0

İlk örneğinizde geçirdiğiniz yıl, 2012'dir. 2013 değil. Bu, yılın yapıldığı yılın haftasına geri dönüyor.

+0

Bu nasıl yararlı? Kağıt takvimime baktığımda 31-12-2012 için 1. hafta diyor. Neden başka biri isterse ister? – Jeroen

+1

@Jeroen Aynı takvim, 2012 gösteriyorsa, 2012'nin 53. haftası olarak 01-01-2013'ü de gösterecektir;) –

+0

Ülkemde (nl-NL) 52. hafta 30-12-2012 ve 1. hafta başlıyor 31 -12-2012. Belki başka ülkelerde farklıdır. Bu iyi. İşte ben de bunun için CultureCodes var :) – Jeroen

2

Bu, 2012'nin 53. haftası olduğundan, kullandığınız tarihe göre (31-12-2012) kullandığınız yılın haftası döndürecektir. 2013'ün 1. haftası, 2012'nin 53. haftasıyla aynı haftadır.

+0

Anladım. Bu işlev, normalde bir takvimdeki hafta numaralarına baktıklarında kullanılan bir değeri döndürmemektedir. Doğru hafta numarasını nasıl alacağınızı biliyor musunuz? Çoğu insanın hepsine rağmen hafta 1 hala 31-12-2012 başlar. – Jeroen

+2

Bu özel işlevi kullandım. Hangisi çalışır? http://codebetter.com/petervanooijen/2005/09/26/iso-weeknumbers-of-a-date-a-c-implementation/. Ama yine de kullanımın GetWeekOfYear işlevinin ne olduğunu anlamadım. – Jeroen

+0

@Jeroen Yılın ilk haftası o zamandan başlıyor - ancak bunu bildirmek istiyorsanız pazartesi günü <= Jan 1 olduğunda hesaplamak zorunda kalacaksınız. –

İlgili konular