使用.NET比较日期与周,月和年

时间:2014-04-10 18:07:09

标签: c# .net date datetime

我目前正在采用这种方式将一年中的一周转换为毫秒。

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来获取给定日期的年,月和年的一周。

非常感谢。

2 个答案:

答案 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)

相关问题