DateAdd-Funktion zum hinzufügen von Monaten
Ich habe diesen code und fügen Monaten
dtExpiry = DateAdd(DateInterval.Month, intDuration, dtStartDate)
und ich habe auch versucht, diesen code,
dtExpiry = DateAdd("m", bytDuration, dtMemStartDate)
aber jedes mal, es fügt nur Tage, nicht Monate. Das Datumsformat muss TT/mm/JJJJ. Ich habe mich verändert, mein PC-Datum im format TT/mm/JJJJ, aber noch hält das hinzufügen von Tagen statt Monaten.
BTW ich erhalte die Dauer und das Startdatum aus dem Hauptmenü aufrufen Programm, das zu extrahieren, diese Werte aus einer Daten-Datei, das ist im CSV-format.
- Ist es möglich, teilen die Werte der dtStartDate und das Ergebnis in dtExpiry?
- so das start-Datum ist wie 15/02/1990 und dann nehmen wir an, wir haben für Sie 6 Monaten. Also der Ablauf Datum sollte 15/08/1990
- Die beiden code-Zeilen funktionieren für mich, wenn ich Ihrem start-Datum und-Intervalle. Könntest du die genaue input-und output? Es ist auch VB.NET und nicht VBA.
- seine VB.NET und ich habe meine Frage zu machen, mehr klar. "Ich erhalte die Dauer und das Startdatum aus dem Hauptmenü aufrufen Programm, das zu extrahieren, diese Werte aus einer Daten-Datei, das ist im CSV-format."
- Ist
dtStartDate
wirklich ein DateTime-oder ist es ein string (wie entnommen, dass CSV)? Beachten Sie, dass ein DateTime-Wert nicht über ein format. Ein format gilt nur, wenn Sie konvertiert das Datum in eine Zeichenfolge (oder zurück).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code sieht ok, aber Sie haben möglicherweise einen falschen Datentyp.
Versuchen, diese und sehen, ob das funktioniert:
Wenn das funktioniert, dann überprüfen Sie den Datentyp
dtStartDate
.All dies kann vermieden werden, wenn Sie wechseln Option Strict On, wie der code wird nicht kompiliert, wenn
dtStartDate
ist nicht der TypDateTime
Beachten Sie, dass Sie sollten auch in der Lage sein, dies zu tun:
Diese werden nicht kompiliert, auch mit Option Strict Off, wenn
dtStartDate
ist nicht einDateTime
so könnte eine sicherere option sein.Verwenden
datetime.tryparse
konvertieren den string in ein Datum, dann verwenden Sie wie unten?Sie können auch angeben, eine Umwandlung und konkret sagen, was ist, wo in der Zeichenfolge (m/d/y)
I. e.:
Oder bin ich fehlt Ihre Frage?