我需要根据当前日期获取上个星期六和上个星期日的上个星期六(例如,如果今天是2014年5月21日我需要得到2014年5月17日(星期六)和2014年5月11日(星期日)),如果今天是星期六,那么它应该是今天的日期和最后的星期天(例如,如果今天是2014年5月24日,我应该得到5/18/2014)我需要在两个日期文本框中指定日期范围以指定日期范围
这里就是我试图完成,但它不是给我正确的输出
DateTime currentDate = DateTime.Today;
int offset = currentDate.DayOfWeek - DayOfWeek.Sunday;
offset = (offset < 0) ? 6 : offset;
string strCulture = System.Globalization.CultureInfo.CurrentCulture.Name;
if (currentDate.DayOfWeek == DayOfWeek.Saturday)
{
txtStartDate.Text = strCulture == "en-US" ? currentDate.AddDays(-offset).ToString("MM-dd-yyyy") : currentDate.AddDays(-offset).ToString("dd-MM-yyyy") ;
txtEndDate.Text = strCulture == "en-US" ? currentDate.ToString("MM-dd-yyyy") : currentDate.ToString("dd-MM-yyyy");
}
else
{
offset = currentDate.DayOfWeek - DayOfWeek.Saturday;
offset = (offset < 0) ? 6 : offset;
DateTime lastSaturday = DateTime.Today.AddDays(-offset);
offset = lastSaturday.DayOfWeek - DayOfWeek.Sunday;
offset = (offset < 0) ? 6 : offset;
DateTime lastSunday = lastSaturday.AddDays(-offset);
txtStartDate.Text = strCulture == "en-US"? lastSunday.ToString("MM-dd-yyyy"):lastSunday.ToString("dd-MM-yyyy");
txtEndDate.Text = strCulture == "en-US" ? lastSaturday.ToString("MM-dd-yyyy") : lastSaturday.ToString("dd-MM-yyyy");
}
嗨苏丹感谢您的代码,但我不明白为什么找到的星期一本周 – Yogesh
如果今天是星期一,那么如果变成0,最后一个星期六将是第19个而不是第17个 – Yogesh
如果你能找到当前的星期一,你可以在算术上找到最后一个星期六和星期天。顺便说一句,亚洲的一周的第一天是星期一。 :) – Sultan