2009-08-27 8 views
0

CODE VB.Comment écrire un code de date dans vb.net?

dteFrom = Format(CDate(Year(Date) & "-" & Month(Date) & "-" & "01"), "yyyy-mm-dd") 
dteTo = Format(CDate(Year(Date) & "-" & Month(Date) & "-" & DaysInMonth(dteFrom)), "yyyy-mm-dd") 

Je copie ce code en VB.NET, montrant Il erreur (Date)

dteFrom = Format(CDate(Year(Of Date)() & "-" & Month(Of Date)() & "-" & "01"), "yyyy-mm-dd") 
dteTo = Format(CDate(Year(Of Date)() & "-" & Month(Of Date)() & "-" & DaysInMonth(dteFrom)), "yyyy-mm-dd") 

que peut aider à résoudre ce problème.

Besoin de code VB.Net.

Répondre

1

Ce sera le plus proche de votre code d'origine:

dteFrom = Format(CDate(Year(Date.Today) & "-" & Month(Date.Today) & "-" & "01"), "yyyy-MM-dd") 
dteTo = Format(CDate(Year(Date.Today) & "-" & Month(Date.Today) & "-" & Date.DaysInMonth(Year(Date.Today), Month(Date.Today))), "yyyy-MM-dd") 

Ce sera une façon plus « .NET » pour le faire:

dteFrom = String.Format("{0:yyyy-MM}-01", Date.Today) 
dteTo = String.Format("{0:yyyy-MM}-{1:00}", Date.Today, Date.DaysInMonth(Year(Date.Today), Month(Date.Today))) 
+0

Notez que la chaîne de format est en majuscule ** M ** pour le mois. Minuscule ** m ** est minutes. La fonction VB6 était "intelligente" et distinguait entre les minutes et le mois en fonction de la logique du motif (ressemble à une date - mois, ressemble à un temps - minutes). Dans .NET, vous devez faire la distinction entre les majuscules et minuscules, tout comme pour la fonction String.Format. – awe

0

Quelque chose comme:

Dim dateString as String = string.format("{0:yyyy-MM-dd}", New DateTime(DateTime.Now.Year,DateTime.Now.Month, 1)) 
+0

Ceux-ci doivent être capitalisés; minuscule vous donnera des minutes. –

+0

hahaha ... oui bien sûr :-) – ozczecho

4

On dirait que vous voulez deux chaînes représentant les premiers et derniers jours du mois en cours. Dans ce cas, vous pouvez effectuer les opérations suivantes:

Dim today As Date = Date.Today 
Dim desiredFormat As String = "yyyy-MM-dd" 

Dim fromDate As Date = New Date(today.Year, today.Month, 1) 
Dim dteFrom As String = fromDate.ToString(desiredFormat) 

Dim toDate As Date = fromDate.AddDays(Date.DaysInMonth(today.Year, today.Month) - 1) 
Dim dteTo As String = toDate.ToString(desiredFormat) 
Questions connexes