मैं तिथियों के लिए सप्ताह संख्याओं की गणना करने के बीच में हूं, लेकिन System.Globalization.Calendar
31 दिसंबर 2007 और 2012 के लिए (अन्य वर्षों के बीच) अजीब परिणाम लौटा रहा है।System.Globalization.Calendar.GetWeekOfYear() अजीब परिणाम देता है
Calendar calendar = CultureInfo.InvariantCulture.Calendar;
var date = new DateTime(2007, 12, 29);
for (int i = 0; i < 5; i++)
{
int w = calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
Console.WriteLine("{0}\t{1}", date.ToString("dd.MM.yyyy"), w);
date = date.AddDays(1);
}
परिणाम
29.12.2007 52
30.12.2007 52
31.12.2007 53 <--
01.01.2008 1
02.01.2008 1
29.12.2012 52
30.12.2012 52
31.12.2012 53 <--
01.01.2013 1
02.01.2013 1
जहां तक मैं समझता हूँ, वहाँ वर्ष 2007 और 2012 में एक सप्ताह में 53 नहीं होना चाहिए, लेकिन कुछ दिनों सप्ताह 1 में शामिल किया जाना चाहिए वहाँ एक रास्ता है इस व्यवहार कोमें बदलने के लिए?
"दिनों को सप्ताह 1 में शामिल किया जाना चाहिए": किस नियम के अनुसार? नियमों के मुताबिक, मुझे पता है कि वर्ष के आखिरी दिन अगले वर्ष के पहले सप्ताह का हिस्सा कभी नहीं हैं ... –
आईएसओ 8601 के अनुसार। Http://en.wikipedia.org/wiki/ISO_8601 – sshow
बीटीडब्ल्यू, क्यों क्या आप उस अजीब तारीख प्रारूप का उपयोग कर रहे हैं? मुझे लगता है कि मैंने कभी भी '2007.12.2 9' के रूप में लिखी तारीखें नहीं देखी हैं। – svick