Any*_*are 0 c# asp.net datetime date
如何dates在特定的一周内得到月份和年份?
例如:
我的参数:
June - 2013 - The second week
Run Code Online (Sandbox Code Playgroud)
我想要这样的结果集:
9-6-2013
10-6-2013
11-6-2013
12-6-2013
13-6-2013
Run Code Online (Sandbox Code Playgroud)
我希望它从太阳到周四.
在我的Noda Time库中,我会:
foreach循环):所以:
IEnumerable<LocalDate> GetSundayToWednesday(int year, int month, int week)
{
LocalDate date = new LocalDate(year, month, 1).PlusDays(-1);
for (int i = 0; i < week; i++)
{
date = date.Next(IsoDayOfWeek.Sunday);
}
// You always want 4 days, Sunday to Wednesday
for (int i = 0; i < 4; i++)
{
yield return date;
date = date.PlusDays(1);
}
}
Run Code Online (Sandbox Code Playgroud)
只使用DateTime,我可能会开始在每月,它的第一天可能是(周*7 + 1)和环路,直到我打了一周的天权,然后再从那里:
IEnumerable<DateTime> GetSundayToWednesday(int year, int month, int week)
{
// Consider breaking this part out into a separate method?
DateTime date = new DateTime(year, month, week * 7 + 1);
for (int i = 0; i < 7; i++)
{
if (date.DayOfWeek == DayOfWeek.Sunday)
{
break;
}
date = date.AddDays(1);
}
// You always want 4 days, Sunday to Wednesday
for (int i = 0; i < 4; i++)
{
yield return date;
date = date.AddDays(1);
}
}
Run Code Online (Sandbox Code Playgroud)
像这样的循环并不是非常有效 - 你可以计算出推进的天数 - 但这显然是对的.您可以通过更有效的方法轻松地以一个一个错误(或回到上个月)结束.当然,如果这很重要,你可以选择付出更多努力来提高效率.
| 归档时间: |
|
| 查看次数: |
2249 次 |
| 最近记录: |