我目前正在采用这种方式将一年中的一周转换为毫秒。
DateTime source = new DateTime(2014, 1, 1);
int weeks = 14; //first week of April
**int month = 4; //I don't use it yet**
int delta = 7 + DayOfWeek.Wednesday - source.DayOfWeek;
if (delta >= 7)
delta -= 7;
source = source.AddDays((weeks- 1) * 7 + delta);
double timeMs = (source - new DateTime(1970, 1, 1)).TotalMilliseconds;
虽然,我遇到的问题是,某一周可能属于两个月,就像2014年的第14周属于3月和4月。
例如,我收到以下条目:
week: 14, month: 3, year: 2014, total: 13
week: 14, month: 4, year: 2014, total: 98
我正在做的方式我得到两个条目的ms相同的时间戳,这对于构建星期演变图表是有好处的,但如果我想同时按月和周过滤数据则很糟糕(例如:从4月14日到4月15日 - >我不想让这13台设备与4月14日相关)
所以我的问题是:考虑到一年中的一周,月和年份是否有任何方式(图书馆与否)将两个日期准确地与这些字段进行比较?
PS:在前端我使用moment.js来获取给定日期的年,月和年的一周。
非常感谢。
答案 0 :(得分:1)
您可以使用Time Period Library for .NET的周类:
// ----------------------------------------------------------------------
public void WeekOfYear()
{
Week week = new Week( 2014, 14 );
Console.WriteLine( "Week: {0}", week );
Console.WriteLine( "Year: {0}, Month: {1}", week.Start.Year, week.Start.Month );
Console.WriteLine( "NextWeek: {0}", week.GetNextWeek() );
} // WeekOfYear
答案 1 :(得分:0)