正如标题所说,考虑到年份和周数,我如何获得月份数?
编辑:如果一周过了两个月,我想要一个星期的第一天所在的月份.
编辑(2):这是我获得周数的方式:
CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
Run Code Online (Sandbox Code Playgroud)
我只是想反过来.
如果您假设您定义的星期的第一天与一年的第一天相同,那么这将起作用:
int year = 2000;
int week = 9;
int month = new DateTime(year, 1, 1).AddDays(7 * (week - 1)).Month;
Run Code Online (Sandbox Code Playgroud)
显然,一个真正的答案取决于你如何定义一周的第一天,以及你如何定义一周如何重叠多个月.
这就是我最终所做的:
static int GetMonth(int Year, int Week)
{
DateTime tDt = new DateTime(Year, 1, 1);
tDt.AddDays((Week - 1) * 7);
for (int i = 0; i <= 365; ++i)
{
int tWeek = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(
tDt,
CalendarWeekRule.FirstDay,
DayOfWeek.Monday);
if (tWeek == Week)
return tDt.Month;
tDt = tDt.AddDays(1);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢更简单的东西,但它有效:)
| 归档时间: |
|
| 查看次数: |
10273 次 |
| 最近记录: |