2013-02-27 51 views
1

我需要查找本週一的星期一的日期。使用asp.net查找星期一的日期

例如,本週星期一是25日,所以我需要的日期:25/02/2013

當我們翻轉到下週它需要計算:2013年3月3日。

我試圖搜索,但我無法找到它的asp.net。

+0

重複http://stackoverflow.com/questions/1706589/datetime-question-in-vb-net和http://stackoverflow.com/questions/1710487/finding-the-date-of-monday-in-a -week-with-vb-net這與asp.net無關.. – 2013-02-27 11:17:03

+0

本週的第一天是什麼?星期日?星期一? – Rawling 2013-02-27 11:39:27

回答

5
DateTime mondayDate = DateTime 
          .Today 
          .AddDays(((int)(DateTime.Today.DayOfWeek) * -1) + 1); 

所以今日{27/02/2013 12:00:00 AM}它會給{25/02/2013 12:00:00 AM}

+0

謝謝。這工作正常 – 2013-02-27 11:22:29

+0

@Sideways,不客氣 – Habib 2013-02-27 11:22:53

+0

只要星期日是你的一週的第一天,這工作正常,所以我認爲這是OP的情況。 – Rawling 2013-02-27 11:40:04

1

用法在C#:

dt.AddDays(1 - (dt.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)dt.DayOfWeek)); 

使用VB.NET中:

dt.AddDays(1 - If(dt.DayOfWeek = DayOfWeek.Sunday, 7, dt.DayOfWeek)) 

參考:DateTime question in VB.NET

+0

如果您至少使用VS 2008,則還可以在VB.NET中使用['If'-operator](http://msdn.microsoft.com/zh-cn/library/bb513985.aspx):'If( (date.DayOfWeek = DayOfWeek.Monday)'。注意你的代碼不會用'IIf'編譯,因爲它返回一個對象並且必須被轉換(選項嚴格假設)。 – 2013-02-27 11:26:48

+0

@TimSchmelter Thanx for this this,I have updated to' If'from'IIf' ..我在VB.NET中並不是很好;) – 2013-02-27 11:31:47

+1

所以,如果'dt'是一個星期一,它會從中減去六天,給出一個星期二......什麼? – Rawling 2013-02-27 11:41:18