2010-09-15 6 views
3

J'ai une date comme 27-12-2010 (jour-mois-année) .J'ai besoin de la valeur suivante en arrière.Obtenir le dernier en date du dernier jour d'un mois

31-12-2010 (dernier jour de ce mois)

30-12-2010 (Pour le dernier jour de ce mois)

+2

Si vous avez accepté les réponses, les gens seraient plus susceptibles d'aider. – treeface

+0

Que diriez-vous de passer du semi-impératif «J'ai besoin de valeur» à quelque chose comme «Comment cela peut-il être fait? - ou même du code, qui vous montre l'approche actuelle et quel est votre problème? – miku

Répondre

7

Si vous voulez que le dernier jour du mois spécifié, l'utilisation ceci:

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) 

Un peu longue haleine, mais il garantit que vous ne serez pas finir en quelque sorte avec le premier du mois suivant ou le deuxième à la dernière du mois.

+0

Cela prend également en compte les années bissextiles, il montrera le dernier jour de chaque mois. +1 –

+1

Oui. Tout ce qu'il fait est d'obtenir le premier jour du mois en cours, ajouter un mois (ce qui nous donne toujours le 1er du mois prochain) et soustraire un jour. –

1

Obtenez le jour de début et dernier jour du mois en cours:

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

Je ne pense pas que ce soit une bonne approche (même si cela peut marcher), car vous devriez toujours éviter la conversion et surtout la chaîne. Il a une mauvaise performance. – Sascha

Questions connexes