1

我正在使用 C# 中的日期,需要计算一些进一步的日期。以当前datetime.

如何获得以下值?

  • 一天的结束
  • 月底
  • 年底
4

3 回答 3

9

如果end of ...你的意思是12:59:59.999PM在那一天,那么:

  • 一天的结束

    var today = DateTime.Today;
    var endOfDay = new DateTime(
        today.Year, 
        today.Month,
        today.Day,
        23,
        59,
        59,
        999
    );
    
  • 月底

    var today = DateTime.Today;
    var endOfMonth = new DateTime(
        today.Year, 
        today.Month,
        DateTime.DaysInMonth(today.Year, today.Month),
        23,
        59,
        59,
        999
    );
    
  • 年底

    var today = DateTime.Today;
    var endOfYear = new DateTime(
        today.Year,
        12,
        31,
        23,
        59,
        59,
        999
    );
    

如果你的意思是别的,然后解释你的意思。

于 2013-06-16T12:07:19.827 回答
3

对于月底

DateTime today = DateTime.Today;
DateTime endOfMonth = new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month));

请参阅如何在 C# 中获取月份的最后一天?

到年底

DateTime endOfYear = new DateTime(today.Year, 12, 31);

对于一天结束,假设一天结束是下午 5 点下班

DateTime endOfDay = new DateTime(today.Year, today.Month, today.day, 17, 0, 0); // Assuming the business end of day is at 5 PM

在http://msdn.microsoft.com/en-us/library/system.datetime.aspx上查看有关日期时间的更多信息

于 2013-06-16T12:06:22.660 回答
0

一个月的最后一天:

DateTime today = DateTime.Now;
DateTime lastDayOfMonth = new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month));

一年中的最后一天:

DateTime today = DateTime.Now;
DateTime lastDayOfYear = new DateTime(today.Year, 12, 31);
于 2013-06-16T12:07:44.997 回答