2013-08-29 3 views
2

Может кто-нибудь помочь мне в том, как определить, была ли данная дата последней датой или днем ​​в месяц?Как определить, является ли дата последним днем ​​месяца?

Например, у меня две даты, одна - 2013-01-27, а другая - 2013-02-28. Мне нужно определить, была ли дата последней. Таким образом, тот, который должен отображаться, был 2013-02-28, потому что его последний день месяца в феврале, а 2013-01-27 был не последним днем ​​месяца в январе.

Какое состояние я могу использовать?

Заранее спасибо.

+1

Dupe: http://stackoverflow.com/questions/2493032/how-to-get-the-last-day-of-a-month –

+0

Это может помочь вам получить последний день месяца Public Function LastDayOfMonth (ByVal sourceDate Как DateTime) Как DateTime Dim lastDay Как DateTime = Новый DateTime (sourceDate.Year, sourceDate.Month, 1) Возврат lastDay.AddMonths (1) .AddDays (-1) End Function –

+1

@ VB.NETLEARNER, это было бы лучше добавлено как ответ, а не комментарий. С одной стороны, это позволит вам правильно отформатировать ваш код. – Adrian

ответ

6

Используйте это:

Function IsLastDay(ByVal myDate As Date) As Boolean 
    return myDate.Day = Date.DaysInMonth(myDate.Year, myDate.Month) 
End Function 
+0

Спасибо, сэр! Он отлично работает :-) –

4

Добавьте один день, и если результирующий ответ не совпадает с тем же месяцем, ваша дата будет последним днем ​​месяца.

-1

Или вы можете проверить, находится ли следующий день в первый день месяца.

Если вы используете рубин, вы можете использовать условие:

(date + 1).day == 1 

Или, если вы используете Python:

(date + datetime.timedelta(days=1)).day == 1 

Ура!

+1

Сэр как насчет в vb.net? –

+1

Исходный вопрос касается конкретно VB.NET, поэтому ответы на Python и Ruby не актуальны. – Adrian

+0

Упс, не видел тег. Сожалею! – marcelrf

2

Это работает для меня:

Dim isLastDayOfMonth As Func(Of DateTime, Boolean) = _ 
    Function (dt) dt.AddDays(1).Day = 1 
0

Надеюсь, это поможет вам, его код для предложенного ответа Шон де Вет. Вы можете переключаться Datetime.today.month для других переменного с определенной датой, а затем просто переключает Today.Adddays (1) с конкретным date.AddDays (1)

Dim dateOfToday As DateTime = Today.AddDays(1) 

Sub isTodayTheLastDay() 
    If DateTime.Today.Month = dateOfToday.Month Then 
     'yes its the same month, place code here 
    Else 
     'no its not the same month, place code here 
    End If 

End Sub 

-

Dim dateToCheck As New DateTime(2013, 4, 21) 'any date you want to check here 
Dim Check As DateTime = dateToCheck.AddDays(1) 


Sub isTodayTheLastDay() 
    If dateToCheck.Month = Check.Month Then 
     'yes its the same month, place code here 
    Else 
     'no its not the same month, place code here 
    End If 

End Sub 
+2

Ваш ответ несколько запутан. Возможно, вам захочется прояснить это немного дальше? Как смотреть сегодняшнюю дату, сообщите пользователю, является ли отдельная произвольная дата последним днем ​​ее месяца? – Adrian

+0

Я просто использовал «сегодня» в качестве даты для проверки, как в «Сегодня ли последний день месяца?» Я отредактирую свое сообщение и добавлю код для любой даты (например, я попытался объяснить в оригинальном ответе) извините за замешательство и поздний ответ. – Vahx

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