2014-02-04 5 views
3
DateTime dt = DateTime.UtcNow; 

var lastDayOfMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); 
day = dt.Day; 
if (day != lastDayOfMonth) 
{ 
    if (dt.Hour >= 14) 
    { 
     day = day + 1; 
    } 
    else if (dt.DayOfWeek == DayOfWeek.Sunday) 
     day = day + 1; 
} 
else 
{ 
    // 
} 

Теперь я хочу добавить один день в последний день месяца. Как мне это сделать?Добавление одного дня в последний день месяца

+0

Какой язык вы используете? – therealrootuser

+0

C# .. извините за отсутствие упоминания –

+1

Итак, вы хотите получить первый день следующего месяца? – therealrootuser

ответ

1

Наконец, я сделал это, удалив условие if для lastDayOfMonth и используя свойство AddDays.

   if (dt.Hour >= 14) 
       { 
        dt.AddDays(1); 
       } 
       else if (dt.DayOfWeek == DayOfWeek.Sunday) 
       { 
        dt.AddDays(1); 
       } 
       day = dt.Day; 

благодарю всех за ваши ценные предложения.

2

Похоже, вам просто нужно DateTime.AddDays method

Возвращает новый объект DateTime, добавляющий заданное число дней в значение данного экземпляра.

Но DateTime.Day Возврат недвижимости int. Если вы просто хотите добавить его 1, вы в правильном направлении.

day = day + 1; 

Но это не влияет на dt конечно.

Хорошо, давайте посмотрим на вашей конкретной проблемы сейчас ..

Добавление 1 месяц, а затем извлекая 1 день является одним из лучших способов, чтобы выяснить, в последний день текущего месяца.

Например,

DateTime dt = DateTime.UtcNow; 
var FirstDayOfNextMonth = new DateTime(dt.Year, dt.Month, 1).AddMonths(1); 
var LastDayOfCurrentMonth = FirstDayOfNextMonth.AddDays(-1); 
Console.WriteLine(LastDayOfCurrentMonth); 

Выход будет;

2/28/2014 12:00:00 AM 

Здесь в demonstration.

1
DateTime today = DateTime.Today; 
DateTime firstDayOfThisMonth = new DateTime(today.Year, today.Month, 1); 
DateTime firstDayOfNextMonth = firstDayOfThisMonth.AddMonths(1); 
1

Чтобы найти первый день следующего месяца вы можете использовать

Datetime FirstDayofNxtMnth =DATE(YEAR(TODAY()),MONTH(TODAY())+1,1);

Чтобы найти последний день этого месяца вы можете использовать

Datetime FirstDayofNxtMnth =DATE(YEAR(TODAY()),MONTH(TODAY())+1,1);

Datetime LastDayofThisMnth =DATE(YEAR(TODAY()),MONTH(TODAY())+1,1).addDay(-1);

Смежные вопросы