Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Datum1 - Datum2 = anzahl der Tage ?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 52
Wohnort: Herzogenaurach

BeitragVerfasst am: 06.06.2007, 07:59    Titel: Datum1 - Datum2 = anzahl der Tage ? Antworten mit Zitat

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. zwinkern
Dieter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 06.06.2007, 12:50    Titel: Antworten mit Zitat

hachja... in VisualBasic gibt's dafür extra eine Funktion grinsen
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 06.06.2007, 15:43    Titel: Antworten mit Zitat

Hallo,

Zitat:
Ideal währe ein Programmbeispiel ohne „SUB“.

SUBs (Unterprogramme) sind nichts Schlimmes und man sollte von ihnen immer dann Gebrauch machen, wenn es sich anbietet. Sie sorgen für einen strukturierten, gut zu wartenden und wiederverwendbaren Quellcode. Siehe http://www.o-bizz.de/qbtuts/selfqb/index.htm#kap14

Zitat:
Kann jemand helfe 2 Datumangabe z.B. 20.04.2006 bis zum 11.06.2004, die anzahl der Tage zu errechnen.

Der im Folgenden verlinkte Quellcode dürfte dafür geeignet sein: http://www.qbasicnews.com/abc/showsnippet.php?filename=DATETIME.ABC&snippet=15 lächeln

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 06.06.2007, 15:53    Titel: Antworten mit Zitat

[OT]
wenn ytwinky DEN code zu gesicht bekommt... durchgeknallt
[/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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 06.06.2007, 21:45    Titel: Antworten mit Zitat

Aus meiner Sammlung:

http://www.dreael.ch/Deutsch/Download/DatumBerechnung.html

=> Macht exakt das im Titel Verlangte.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
stef



Anmeldungsdatum: 13.01.2005
Beiträge: 102

BeitragVerfasst am: 07.06.2007, 11:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 07.06.2007, 22:13    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
[OT]
wenn ytwinky DEN code zu gesicht bekommt... durchgeknallt
[/OT]
[auch OT]
GOTO-Hunter hat Folgendes geschrieben:
ach, macht doch was ihr wollt, dies ist eine freie Sprache..vor lachen auf dem Boden rollen
[/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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz