我在这方面很糟糕,但我想计算从日期开始的周数。 而我发现的是:
private int weekNumber(DateTime fromDate)
{
DateTime startOfYear = fromDate.AddDays(-fromDate.Day + 1).AddMonths(-fromDate.Month + 1);
DateTime endOfYear = startOfYear.AddYears(1).AddDays(-1);
int[] iso8601Correction = { 6, 7, 8, 9, 10, 4, 5 };
int nds = fromDate.Subtract(startOfYear).Days + iso8601Correction[(int)startOfYear.DayOfWeek];
int wk = nds / 7;
switch (wk)
{
case 0:
return weekNumber(startOfYear.AddDays(-1));
case 53:
if (endOfYear.DayOfWeek < DayOfWeek.Thursday)
return 1;
else
return wk;
default: return wk;
}
}
所以这一切看起来都很棒。但是我如何在文本块上使用它作为例子。不知道这个。
答案 0 :(得分:2)
根据您的评论。您应该为weekNumber方法找到更好的实现。并重命名遵循标准命名约定。考虑将weekNumber()作为扩展方法。
DateTime dt=DateTime.Parse(MyTextBlock.Text);
int weeknumber=weekNumber(dt);
DateValue.Text=weeknumber.ToString();