2013-06-16 2 views
1

Я работаю с датами в C# и вам нужно рассчитать некоторые дополнительные даты. Принимая ток datetime.Получить конкретные даты

Как получить следующие значения?

  • конец дня
  • конца месяца
  • конца года
+3

Что вы имеете в виду _END из .._? –

+1

Что вы подразумеваете под конец дня? Вы имеете в виду конец рабочего дня, например, 5 вечера или 11,59 вечера? – unlimit

ответ

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

Если вы имеете в виду что-то другое, то объяснить, что вы имеете в виду.

+0

Это 12:59 или 11:59? –

+0

Конечно, должно быть 11:59. Спасибо что подметил это. Я обновил свой ответ. –

2

Для конца месяца

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

см How can I get the last day of the month in 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 

Подробнее о DateTime в http://msdn.microsoft.com/en-us/library/system.datetime.aspx

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); 
Смежные вопросы