2012-02-01 59 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

相关问题