PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Datum berechnen



sato
08.06.2009, 21:10
Hallo

Meine Platine hat ein RTC den DS1307 und ich möchte ein durch ein String gelierter Datum vergleichen und auswerten.

Beispiel: das Datum am DS1307
10-06-09
gelieferte Datum 01-07-09

Was ich benötige ist zu signalisieren sobald das DS1307 Datum grösser als die gelieferte Datum ist.
Weiss jemand ob Bascom schon so eine Funktion fertig hat.

Gruss
Sato

for_ro
08.06.2009, 22:23
Wenn du folgende Zeile einfügst:

Config Date = Dmy , Separator = -

dann ist dein angegebenes Format das Datumsformat im Programm.
Nun kannst du die SysDay(str) Funktion benutzen, um die beiden Datumswerte in ein fortlaufendes Systemdatum umzuwandeln. Diese kannst du dann vergleichen

Config Clock = Soft
Config Date = Dmy , Separator = -
Dim Datum1 As Long , Datum2 As Long , Datum3 As Long
Dim Strdate As String * 10
Strdate = "01-05-09"
Datum1 = Sysday(strdate)
Strdate = "02-04-09"
Datum2 = Sysday(strdate)
Strdate = "01-05-10"
Datum3 = Sysday(strdate )

If Datum1 > Datum2 Then Print "test1"
If Datum2 > Datum3 Then Print "test2"

Gruß

Rolf

sato
08.06.2009, 23:20
Hallo Rolf

Danke, genau das habe ich gesucht.

Config Clock = User '1307 RTC clock
Config Date = Dmy , Separator = -
Meine Platine wird wie gesagt mit DS1307 ausgestattet sein. Es ist noch nicht fertig, darum kann ich noch nicht testen.

Will hoffen das ich so auch den Datum von den RTC einlesen kan.

Strdate = Date$
Data_system = Sysday(strdate)

Gruss
Sato

StevieL
09.06.2009, 07:00
Hallo Sato,

beim eingelesenen Systemdatum dürfte sogar

Data_system = Sysday()

funktionieren. Date$ ist ja bereits ein String im Zeitformat und Sysday() liefert den Wert von Date$ zurück.
Ob das bei Clock = User auch funktioniert, habe ich noch nicht ausprobiert. Aber ich verwende in Zusammenhang mit einem DS1307 auch andere Zeitfunktionen (z. B. SecOfDay) mit Time$ und das funktioniert problemlos.