Datum Maker

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

TheMatrix

Betreff: Datum Maker

BeitragMi, Sep 27, 2006 1:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab da mal was (aus meiner Sicht) interassantes geprogt. Durch den Thread https://www.blitzforum.de/foru...hp?t=19658, kamm ich auf Idee mal sone Zeitanzeige selbst zu basteln.

Über uhranzeige$() könnt ihr diese Parameter mitgeben:
%jahr = Das Jahr wird voll ausgeschrieben
%jj = Das Jahr wird verkürzt angezeigt
%monat = Der Monat wird voll ausgeschrieben
%month = Der Monat wird verkürzt gezeigt
%tag = Der Tag wir voll ausgeschrieben
%tt = Die ersten zwei Buchstaben des Tages
%dd = Der Tag wird als Zahl zurückgegeben
%hh = Stunden
%mm = Minuten
%ss = Sekunden

natürlich in jeder beliebigen Reihenfolge. Zwischen den Parametern können beliebige Zeichen eingefügt werden.

Der Parameter %tag is dabei besonders interressant. Er greift auf eine Funktion zurück, welche ich geschrieben habe, und gibt dabei den heutigen Tag im String zurück.

Ich hoffe, ich habe dabei nichts vergessen. Wenn jemand noch weitere Parameter einfallen. Nur zu!

Und jetzt zu meinem Code: [AUSKLAPPEN]

Graphics 600,20,16,2
Dim monate(12) : Global schaltjahr=28
monate(1)=31 : monate(2)=29 : monate(3)=31
monate(4)=30 : monate(5)=31 : monate(6)=30
monate(7)=31 : monate(8)=31 : monate(9)=30
monate(10)=31 : monate(11)=30 : monate(12)=31
; -------------------- Synonyme ------------------
; %jahr  = Das Jahr wird voll ausgeschrieben
; %jj    = Das Jahr wird verkürzt angezeigt
; %monat = Der Monat wird voll ausgeschrieben
; %month = Der Monat wird verkürzt gezeigt
; %tag   = Der Tag wir voll ausgeschrieben
; %tt    = Die ersten zwei Buchstaben des Tages
; %dd    = Der Tag wird als Zahl zurückgegeben
; %hh    = Stunden
; %mm    = Minuten
; %ss    = Sekunden


While Not KeyHit(1)
Cls
Text  0,0,uhranzeige$("%tt %hh:%mm:%ss %dd, %month %jahr")
Flip
Wend

Function uhranzeige$(zeile$)
time$ = CurrentTime$()
date$ = CurrentDate$()
hh$ = Left$(time$,2) : mm$ = Mid$(time$,4,2) : ss$ = Right$(time$,2)
dd$ = Left$(date$,2) : month$ = Mid$(date$,4,3) : jahr$ = Right$(date$,4)
jj$ = Right$(jahr$,2) : monat$ = monatname$(month$)
tag$ = getTag$(dd,monatzahl(month$),jahr)
tt$ = Left$(tag$,2)
For a=1 To Len(zeile$)
st$ = Mid$(zeile$,a,1)

If read_befehl=1
 befehl$=befehl$+st$
 Select befehl$
  Case "hh" : n$ = hh$
  Case "mm" : n$ = mm$
  Case "ss" : n$ = ss$
  Case "jj" : n$ = jj$
  Case "dd" : n$ = dd$
  Case "month" : n$ = month$
  Case "tt" : n$ = tt$
  Case "tag" : n$ = tag$
  Case "monat" : n$ = monat$
  Case "jahr" : n$ = jahr$
 End Select
 If n$<>"" Then anzeige$=anzeige$+n$ : n$="" : read_befehl=0 : befehl$=""
Else
 If st$<>"%" Then anzeige$=anzeige$+st$
End If

If st$="%" Then read_befehl=1
Next

Return anzeige$
End Function


Function monatname$(mon$)

 Select mon$
  Case "Jan" : monat$="Januar"
  Case "Feb" : monat$="Februar"
  Case "Mar" : monat$="März"
  Case "Apr" : monat$="April"
  Case "May" : monat$="Mai"
  Case "Jun" : monat$="Juni"
  Case "Jul" : monat$="Juli"
  Case "Aug" : monat$="August"
  Case "Sep" : monat$="September"
  Case "Oct" : monat$="Oktober"
  Case "Nov" : monat$="November"
  Case "Dec" : monat$="Dezember"
 End Select
 Return monat$
End Function
Function monatzahl(mon$)

 Select mon$
  Case "Jan" : m=1
  Case "Feb" : m=2
  Case "Mar" : m=3
  Case "Apr" : m=4
  Case "May" : m=5
  Case "Jun" : m=6
  Case "Jul" : m=7
  Case "Aug" : m=8
  Case "Sep" : m=9
  Case "Oct" : m=10
  Case "Nov" : m=11
  Case "Dec" : m=12
 End Select
Return m

End Function
Function getTag$(tag,monat,jahr)
 start_jahr = 1980 : start_tag=1
 dif_jahre = jahr-start_jahr
 schalt_jahre = dif_jahre/4

 tage = (dif_jahre*365)+schalt_jahre


 normal_jahr = dif_jahre Mod 4 : If normal_jahr>0 Then normal_jahr=1 Else tage=tage-1

 For a=1 To monat-1
  If a=2 Then plus_tage=monate(2)-normal_jahr Else plus_tage=monate(a)
  tage=tage+plus_tage
 Next : tage=tage+tag
 If dif_jahre=0 Then tage=tage+1
 
 Select (tage+start_tag) Mod 7
  Case 0 : n$ = "Montag"
  Case 1 : n$ = "Dienstag"
  Case 2 : n$ = "Mittwoch"
  Case 3 : n$ = "Donnerstag"
  Case 4 : n$ = "Freitag"
  Case 5 : n$ = "Samstag"
  Case 6 : n$ = "Sonntag"
 End Select
 Return n$
End Function
°_° °.° °~° °v° .. -.-
  • Zuletzt bearbeitet von TheMatrix am Mi, Sep 27, 2006 10:46, insgesamt einmal bearbeitet

TheMatrix

BeitragMi, Sep 27, 2006 1:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese Parameterfolge ist auch ganz intressant.

Code: [AUSKLAPPEN]

Text  0,0,uhranzeige$("Es ist %tag der %dd %monat %jahr. Es ist %hh:%mm:%ss")


Einfach die Stelle suchen die mit Text 0,0,uhr... anfängt und damit ersetzen
°_° °.° °~° °v° .. -.-

aMul

Sieger des Minimalist Compo 01/13

BeitragMi, Sep 27, 2006 8:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine schlechte Idee! Hab jetzt nicht getestet obs funktioniert, aber ich bnín mir sicher, das man sowas sicher irgendwo mal gebrauchen kann.
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group