2014-04-10 226 views
1

我目前正在通過這種方式將一年中的星期轉換爲毫秒。使用.NET比較日期與星期,月份和年份

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 

我做我得到同樣的時間戳以毫秒爲兩個條目,這是很好的建築周進化的圖表,但它是這樣的如果我想同時按月和周過濾數據(例如:從4月的第14周到4月的第15周 - >我不想讓這13個設備與4月14日的第14周相關)

所以我的問題是:給定一年的一週,月份和year有什麼方法(庫或不是)比較兩個da準確地使用這些字段?

PS:在前端,我使用moment.js來獲取給定日期的年份,月份和年份的星期。

無論如何。

+0

可能會有所幫助:http://stackoverflow.com/問題/ 662379 /計算日期從週數 – Habib

回答

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 
相關問題