2010-09-15 3 views
3

У меня есть дата 27-12-2010 (день-месяц-год). Мне нужно следующее значение.Получайте последние объявления в последний день месяца

31.12.2010 (последний день этого месяца)

30-12-2010 (За последний день этого месяца)

+2

Если вы приняли ответы, люди были бы более вероятно, чтобы помочь. – treeface

+0

Как насчет того, чтобы переходить от полупостоянного «Мне нужна ценность», к чему-то вроде «Как это можно сделать?» - или даже некоторый код, который показывает ваш текущий подход и какова ваша проблема? – miku

ответ

7

Если вы хотите, чтобы последний день месяца указано, использование это:

Dim original As DateTime = DateTime.Now ' The date you want to get the last day of the month for 
Dim lastOfMonth As DateTime = original.Date.AddDays(-(original.Day - 1)).AddMonths(1).AddDays(-1) 

немного долго наматывается, но это гарантирует вам не будет каким-то образом в конечном итоге с первого числа следующего месяца или второго до последнего месяца.

+0

Это также учитывает високосные годы, он будет показывать последний день каждого месяца. +1 –

+1

Да. Все, что он делает, это получить первый день текущего месяца, добавить месяц (который всегда дает нам 1-е из следующего месяца) и вычесть день. –

1

Получить начальный день и последний день текущего месяца:

Dim thisMonth As New DateTime(DateTime.Today.Year, DateTime.Today.Month, 1) 

'beginning day of the month 
thisMonth.ToString("yyyy-MM-01") 

'last day of the month 
thisMonth.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") 
+0

Я не думаю, что это хороший подход (хотя он может работать), потому что вы всегда избегаете конверсии и, особенно, строки. Он имеет низкую производительность. – Sascha

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