2011-03-10 56 views
0

我想檢索記錄基於上週和上個月在C#。上週我想從星期日到星期六的記錄。對於上個月我想獲得上個月的開始日期來獲取所有記錄,直到月底。如何獲取上週開始日期和上個月在C#中的開始日期?

我不應該獲取上週的最後六天記錄,而是想從當前周(星期日)開始日期查找最後一個星期日。

我發現上週首次發現上個月的解決方案,並最後一天---->

var first = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(-1); 
        var last = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddDays(-1); 

發現----->

DateTime _currDateTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified); 
        DateTime _currentDate; 
        DateTime _lastWeekStartDate; 
        _currentDate = _currDateTime.StartOfWeek(DayOfWeek.Sunday); 
        _lastWeekStartDate = _currentDate.AddDays(-1); 
        tempfromdate = _lastWeekStartDate.StartOfWeek(DayOfWeek.Sunday); 
        temptodate = tempfromdate.EndOfWeek(DayOfWeek.Saturday); 
+1

你如何定義星期?不同的文化對此有不同的定義特別是一週中的第一天會有所不同。 – 2011-03-10 06:44:41

回答

5

這是至少的方式這樣做

DateTime lastWeekFirstDay = DateTime.Now.AddDays(- 6 - (int)DateTime.Now.DayOfWeek); 
DateTime lastMonthFirstDay = DateTime.Now.AddMonths(-1).AddDays(1 - DateTime.Now.Day); 

更換6與7中的第一行代碼,如果週日是一週中你的文化的第一天。 6假設星期一是一週的第一天。

編輯

添加了一個月變種的變體可能是一個有點更具可讀性:

DateTime lastMonthFirstDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1); 
+0

+1:我認爲你說得對。我刪除了我的答案。 – Divi 2011-03-10 07:17:01

+0

上個月第一天和最後一天的邏輯。上個月的邏輯工作。謝謝帥哥 – user649802 2011-03-10 07:57:12

+0

很高興知道它幫助:) – 2011-03-10 08:00:15

相關問題