获取月末和月末的最简单方法是什么?

时间:2012-02-01 14:33:17

标签: c# .net datetime

以下是我找到的最佳方式。思考?如果您加载它并运行是否有更快的方式来加载它然后我在这里做了什么?有什么我想念的吗?

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));
}

1 个答案:

答案 0 :(得分: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));
}
相关问题