Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 06.06.2007, 07:59 Titel: Datum1 - Datum2 = anzahl der Tage ? |
|
|
Hallo alle zusammen,
Kann jemand helfe 2 Datumangabe z.B. 20.04.2006 bis zum 11.06.2004, die anzahl der Tage zu errechnen.
Ideal währe ein Programmbeispiel ohne „SUB“.
Gruß und Danke bereits in voraus.
Dieter |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.06.2007, 12:50 Titel: |
|
|
hachja... in VisualBasic gibt's dafür extra eine Funktion
Du müsstest dir dein Datum aufspalten (Tag, Monat, Jahr), und das irgendwie in eine Zahl verwandeln und dann die beiden Zahlen multiplizieren. Dabei musst du die "großen" Zahlen (Monat und Jahr) aber multiplizieren, da es sonst doppelte Daten geben könnte... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.06.2007, 15:53 Titel: |
|
|
[OT]
wenn ytwinky DEN code zu gesicht bekommt...
[/OT] _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
stef
Anmeldungsdatum: 13.01.2005 Beiträge: 102
|
Verfasst am: 07.06.2007, 11:53 Titel: |
|
|
Wie fast immer gibt es auch hierfür einen Artikel in der Monster FAQ, der zahlreiche Lösungsmöglichkeiten angibt:
QBasic-MonsterFAQ -> Datum/Uhrzeit und Bildung von Wartezeiten -> Wie ermittle ich die Zeitspanne zwischen 2 Zeitpunkten?
Hier die leicht umgebaute Funktion von mir:
Code: | FUNCTION ZeitDiff# (Datum1 AS STRING, Datum2 AS STRING)
'Errechnet die Zeitdifferenz zwischen zwei Zeitpunkten in Sekunden
'Parameter: Datum1 -> MM-TT-JJJJ
' Datum2 -> MM-TT-JJJJ
DIM Tag1 AS INTEGER 'ganze Tage seit Monatsbeginn
DIM Tag2 AS INTEGER
DIM Monat(1 TO 12) AS INTEGER 'Tage bis zum Monatsbeginn im Jahr
DIM Monat1 AS INTEGER 'Monatsnummer
DIM Monat2 AS INTEGER
DIM Jahr1 AS INTEGER 'Jahreszahl
DIM Jahr2 AS INTEGER
DIM Schalttag1 AS INTEGER 'Anzahl Schalttage seit dem Jahre 1
DIM Schalttag2 AS INTEGER
'----- Speichern der Tage vor einem Monat -----
Monat(1) = 0: Monat(7) = 181
Monat(2) = 31: Monat(8) = 212
Monat(3) = 59: Monat(9) = 243
Monat(4) = 90: Monat(10) = 273
Monat(5) = 120: Monat(11) = 304
Monat(6) = 151: Monat(12) = 334
'----- Berechnen der ganzen Tage seit Jahresbeginn -----
Tag1 = VAL(MID$(Datum1, 4, 2)) - 1
Monat1 = VAL(LEFT$(Datum1, 2))
Tag1 = Tag1 + Monat(Monat1)
Tag2 = VAL(MID$(Datum2, 4, 2)) - 1
Monat2 = VAL(LEFT$(Datum2, 2))
Tag2 = Tag2 + Monat(Monat2)
'----- Jahreszahl ermitteln -----
Jahr1 = VAL(MID$(Datum1, 7))
Jahr2 = VAL(MID$(Datum2, 7))
'----- Ermitteln ob im aktuelle Jahr ein Schalttag war ---
IF Monat1 > 2 THEN
IF (Jahr1 MOD 4 = 0 AND Jahr1 MOD 100 <> 0) OR Jahr1 MOD 400 = 0 THEN
Schalttag1 = 1
END IF
END IF
IF Monat2 > 2 THEN
IF (Jahr2 MOD 4 = 0 AND Jahr2 MOD 100 <> 0) OR Jahr2 MOD 400 = 0 THEN
Schalttag2 = 1
END IF
END IF
'----- Erechnen der Schalttage seit dem Jahre 1 -----
Jahr1 = Jahr1 - 1
Jahr2 = Jahr2 - 1
Schalttag1 = Schalttag1 + Jahr1 \ 4 - Jahr1 \ 100 + Jahr1 \ 400
Schalttag2 = Schalttag2 + Jahr2 \ 4 - Jahr2 \ 100 + Jahr2 \ 400
'----- Berechnen der Zeitdifferenz -----
ZeitDiff = Tag2 - Tag1 + Schalttag2 - Schalttag1 + (Jahr2 - Jahr1) * *365
END FUNCTION |
Der Aufrauf ist denkbar einfach:
Code: | PRINT "Anzahl Tage ="; ZeitDiff("06-11-2004", "04-20-2006") |
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 07.06.2007, 22:13 Titel: |
|
|
Jojo hat Folgendes geschrieben: | [OT]
wenn ytwinky DEN code zu gesicht bekommt...
[/OT] | [auch OT] GOTO-Hunter hat Folgendes geschrieben: | ach, macht doch was ihr wollt, dies ist eine freie Sprache.. | [/auch OT] _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|