स्वीकार्य समाधान वास्तव में सही नहीं है।
आपको सप्ताह "ब्रेक" के दौरान स्विच करना होगा, यानी जब यह सप्ताह को समाप्त या शुरू करने पर विचार करता है, और स्वीकार्य समाधान में सूत्र नहीं है।
यह सोमवार को सप्ताह की शुरुआत में इतनी दिखाई नहीं दे रहा है, लेकिन अधिक यदि आप गुरुवार को सप्ताह के अंत में विचार करेंगे।
सही सूत्र (गुरुवार के लिए दिन समाप्त होने के रूप में) है:
DateTime thu = date.AddDays(-(int)(date.AddDays(-5).DayOfWeek) -1);
सोमवार के लिए, -5 -2 के लिए स्विच जाएगा।
उदाहरण कोड क्या शुक्रवार को कारोबार की समाप्ति के बाद पिछले सप्ताह काम कर की गणना की जटिलता है, जो तब वर्तमान सप्ताह कि शुक्रवार था लौटना चाहिए के बारे में पता
String s = "";
DateTime date = new DateTime(2017, 1, 1);
for (int i = 0; i < 14; i++)
{
date = date.AddDays(1);
DateTime thu = date.AddDays(-(int)(date.AddDays(-5).DayOfWeek) -1);
DateTime mon = date.AddDays(-(int)(date.AddDays(-2).DayOfWeek) -1);
s += date.ToString() + " - Thu: " + thu.ToString() + " - Mon: " + mon.ToString() + "\r\n";
}
Console.WriteLine(s);
मुद्रित करने के लिए? –