Sekunden bis Sylverster

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Sekunden bis Sylverster

BeitragMi, Sep 21, 2005 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Das Programm hier kann die Sekunden, Stunden und Tage bis Sylvester ausrechnen:

Code: [AUSKLAPPEN]
AppTitle "Sekunden bis Sylvester
Graphics 350,100,16,2
SetBuffer BackBuffer()

Dim word_to_int$(12)
word_to_int$(11)="Jan":word_to_int$(5) ="Jul"
word_to_int$(10)="Feb":word_to_int$(4) ="Aug"
word_to_int$(9)="Mar":word_to_int$(3) ="Sep"
word_to_int$(8)="Apr":word_to_int$(2)="Oct"
word_to_int$(7)="May":word_to_int$(1)="Nov"
word_to_int$(6)="Jun":word_to_int$(0)="Dec"

timer = MilliSecs()
Repeat
date$ = CurrentDate$()
time$ = CurrentTime$()
tage = 0
stunden = 0
sekunden = 0
msec = 0

Select Mid$(date$,4,3)
Case "Jan"
tage = tage + 30+31+30+31+31+30+31+30+31+28+31
tage = tage + 31-Int(Left$(date$,2))
Case "Feb"
tage = tage + 30+31+30+31+31+30+31+30+31+28
tage = tage + 28-Int(Left$(date$,2))
Case "Mar"
tage = tage + 30+31+30+31+31+30+31+30+31
tage = tage + 31-Int(Left$(date$,2))
Case "Apr"
tage = tage + 30+31+30+31+31+30+31+30
tage = tage + 30-Int(Left$(date$,2))
Case "May"
tage = tage + 30+31+30+31+31+30+31
tage = tage + 31-Int(Left$(date$,2))
Case "Jun"
tage = tage + 30+31+30+31+31+30
tage = tage + 30-Int(Left$(date$,2))
Case "Jul"
tage = tage + 30+31+30+31+31
tage = tage + 31-Int(Left$(date$,2))
Case "Aug"
tage = tage + 30+31+30+31
tage = tage + 31-Int(Left$(date$,2))
Case "Sep"
tage = tage + 30+31+30
tage = tage + 30-Int(Left$(date$,2))
Case "Oct"
tage = tage + 30+31
tage = tage + 31-Int(Left$(date$,2))
Case "Nov"
tage = tage + 30
tage = tage + 30-Int(Left$(date$,2))
Case "Dec"
tage = tage + 0
tage = tage + 31-Int(Left$(date$,2))

End Select

If Int(Right$(date$,4)) Mod 4 = 0 Then tage = tage + 1

stunden = tage * 24
stunden = stunden + 24-(Int(Left$(time$,2))+1)

sekunden = stunden * 3600
sekunden = sekunden + (60-Int(Mid$(time$,4,2))-1)*60
sekunden = sekunden + 60-Int(Right$(time$,2))

msec = sekunden*1000
msec = msec + 1000-(MilliSecs()-timer) Mod 999

Text 0,0,date
Text 0,10,time
Text 0,20,"Tage bis Sylvester : "+ Str$(tage)
Text 0,30,"Stunden bis Sylvester : "+ Str$(stunden)
Text 0,40,"Sekunden bis Sylvester : "+ Str$(sekunden)
;Text 0,50,"Millisekunden bis Sylvester : "+ Str$(msec)

Flip
Cls
Until KeyHit(1)
End
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Xaron

BeitragMi, Sep 21, 2005 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Und was machst Du, wenn es sich um ein Schaltjahr handelt? Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

MegaTefyt

BeitragMi, Sep 21, 2005 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür macht er

If Int(Right$(date$,4)) Mod 4 = 0 Then tage = tage + 1

was aber falsch ist, die Rechnung darf nur erfolgen, wenn der Februar noch nicht vorbei ist... mal davon abgesehen ist eh alles viel zu umständlich geschrieben.

Edit: und noch ein Hinweis:

Zitat:
Von Papst Gregor XIII. wurde daher 1582 folgende Regelung eingeführt (Gregorianischer Kalender):

- Glatt durch 4 teilbare Jahre sind Schaltjahre.
- Glatt durch 100 teilbare Jahre sind jedoch keine Schaltjahre.
- Glatt durch 400 teilbare Jahre sind aber wieder Schaltjahre.

So sind zum Beispiel die Säkularjahre 1800, 1900 und 2100 keine Schaltjahre, die Säkularjahre 2000 und 2400 hingegen schon. Damit dauert das Gregorianische Jahr 365,2425 Tage, und ist genauer als das Julianische Jahr.

(www.wikipedia.de)

Kabelbinder

Sieger des WM-Contest 2006

BeitragDo, Sep 22, 2005 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, stimmt.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group