2017-03-18 1 views
0

J'ai une minuterie qui est de cocher après chaque (86.400.000 secondes toutes les 24 heures et donc tous les jours) pour mettre le nouveau jour dans un DateTimePicker, dtPicker1. Malheureusement, après la minuterie, le résultat apporte l'heure du jour en plus de la date (par exemple 2017-03-18 00:00:05, au lieu de 2017-03-18. pour vérifier la sortie, j'obtiens la date sans l'heure mais le jour suivant (après que la minuterie tique, il ajoute l'heure et donc le code échouedate de vb.net du jour toutes les 24 heures

`'ticks tous les 86400000 miliseconds (un jour) dtPicker1.Enabled = True

dtPicker1.Text = "" 
    Dim mFmt As String = "yyyy-MM-dd" 
    dtPicker1.Format = DateTimePickerFormat.Custom 
    dtPicker1.CustomFormat = mFmt 


    dtPicker1.Text = "" 

    Dim st As Date = Today.AddDays(-1).ToShortDateString 

    Dim cf As String = Today.AddDays(-1) 
    Dim dr As String = cf.Substring(3, 2) 
    'MsgBox(dr) 
    Dim de As String = cf.Substring(6, 4) 
    Dim fg As String = cf.Substring(3, 2) 
    Dim ab As String = cf.Substring(0, 2) 

    'MsgBox(de & "-" & fg & "-" & ab, vbInformation, "Here you Go") 

    dtPicker1.Value = de & "-" & fg & "-" & ab` 

aide sera grandement appréciée.

+2

Vous n'avez pas besoin de convertir un type 'DateTime' en chaîne pour accéder à Jour, mois, année, heure, min, sec, ms. Examiner les propriétés de celui-ci – Plutonix

Répondre

1

Vous n'avez pas besoin d'utiliser des sous-chaînes, vous pouvez définir la valeur directement comme une date.

dtPicker1.Text = "" 
    Dim mFmt As String = "yyyy-MM-dd" 
    dtPicker1.Format = DateTimePickerFormat.Custom 
    dtPicker1.CustomFormat = mFmt 
    dtPicker1.Value = Today.AddDays(-1) 
+0

Je dois choisir la date d'hier et avec cela, je vais devoir utiliser AddDays (-1). – MordC

+0

Alors, ce serait Today.AddDays (-1) .ToString() – obl

+0

Pourquoi convertissez-vous en chaîne? Examinez simplement les propriétés de 'DateTime' elle-même. –