一年有52.17个星期.我如何在c#中计算当前星期
本文关键字:计算 一年 17个 | 更新日期: 2023-09-27 18:17:05
我将数据保存到具有指定字节倍数(dataSlots)的循环日志中,并且我根据从参考日期通过的天数计算周数。
DateTime startDate = DateTime.UtcNow;
for (int ii = 0; ii < 900; ii++)
{
currentDate = startDate + new TimeSpan(7 * ii, 1, 1, 1, 1)
DateTime globalStartReference = new DateTime(2011, 12, 1, 0, 0, 0, DateTimeKind.Utc);
var span = currentDate - globalStartReference ;
int dataSlot = 0;
dataSlot = (span.Days * 7) / 52;
Console.WriteLine(dataSlot);
}
我的希望是dataSlot将是一个不断增加的数字基于当前的一周,但它不是。在这几周,我得到了重复的条目(因此覆盖了我的数据)
11
28
44
60
77
88
109
为什么我得到重复的周,我如何解释这个?我的猜测是,一年中有小数周…
日历。GetWeekOfYear方法可能会有所帮助。它不允许任意的引用日期,但是您可以自己调整。
您是否试图获得任何给定年份的当前星期?它看起来像是从某个预定义的开始日期到无限。使用适当的日历和方法,您可以根据特定日期获得一年中的给定星期,但不能从任意日期获得x周。
还需要考虑闰年、部分周等
如果你只是担心从基线开始的几周,年份就不算了-它只是7天的增量。
否则有年份和星期;@BACON的答案可能是对的。你会得到一点重叠- Y2W1可能与Y1W52共享相同的日历周。不知道你是否要把它添加到第53周,但时间越长,问题就越大。