2012-02-01 64 views
1

以下是我找到的最佳方式。思考?如果你加載並運行有更快的方法來加載它,那麼我在這裏做了什麼?有什麼我失蹤?獲取本月開始和結束日期的最簡單方法是什麼?

void Main() 
{ 
    Console.WriteLine(GetMonthStart(DateTime.Now)); 
    Console.WriteLine(GetMonthEnd(DateTime.Now)); 
} 
private DateTime GetMonthStart(DateTime dt) 
{ 
    dt= dt.Date; 
    return dt.Subtract(TimeSpan.FromDays(dt.Day - 1)); 
} 
private DateTime GetMonthEnd(DateTime dt) 
{ 
    dt= dt.Date; 
    return GetMonthStart(dt).AddMonths(1).Subtract(TimeSpan.FromTicks(1)); 
} 
+0

一個問題詢問意見是不適合的StackExchange格式。請閱讀我們的[FAQ](http://stackoverflow.com/faq#questions)。 – Oded 2012-02-01 14:35:17

+0

你可能想問一下http://codereview.stackexchange.com/ – 2012-02-01 14:37:43

+0

這對於第一天來說似乎比較乾淨:將目標日期傳遞給dateTime:new DateTime(dateTime.Year,dateTime.Month,1); – DOK 2012-02-01 14:38:29

回答

6

不知道更好,但我可能會做

private DateTime GetMonthStart(DateTime dt) 
{ 
    return new DateTime(dt.Year, dt.Month, 1); 
} 

private DateTime GetMonthEnd(DateTime dt) 
{ 
    return new DateTime(dt.Year, dt.Month, DateTime.DaysInMonth(dt.Year, dt.Month)); 
} 
+1

這對於DateTime上的擴展方法是理想的 – 2012-02-01 14:42:09

相關問題