Date64 - Unixtime 64bit

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Date64 - Unixtime 64bit

Beitrag von Sicro »

Vielen Dank euch beiden :allright:
Endlich funktionieren die Strukturen ohne Gemurkse 8)

MacOS 32-Bit werden wir doch auch noch hinbekommen.
Sobald ich mehr Zeit habe, werde ich mal die MacOS-API-Dokus durchgehen und schauen, was da los ist.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Date64 - Unixtime 64bit

Beitrag von Danilo »

Sicro hat geschrieben:MacOS 32-Bit werden wir doch auch noch hinbekommen.
Sobald ich mehr Zeit habe, werde ich mal die MacOS-API-Dokus durchgehen und schauen, was da los ist.
Neue Mac's sind eigentlich nur noch 64bit, da wäre es nicht allzu schlimm das alte 32bit Zeugs zu ignorieren.

Wichtiger finde ich das 64bit mit kleinen Jahreszahlen wie "1600" nicht zu funktionieren scheint:

Code: Alles auswählen

  Debug FormatDate  ("%yyyy.%mm.%dd %hh:%ii:%ss", Date  (1600,1,1,0,0,0))
  Debug FormatDate64("%yyyy.%mm.%dd %hh:%ii:%ss", Date64(1600,1,1,0,0,0))
Output:

Code: Alles auswählen

1969.12.31 23:59:59
1970.01.01 00:59:59
Irgendwie ist da nix mit "1600" :?:

Funktioniert das denn auf Windows und Linux?
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Date64 - Unixtime 64bit

Beitrag von ts-soft »

Linux 32-Bit:
Debugger Output hat geschrieben:0000.00.00 00:00:00

1970.01.01 00:59:59
Windows 32- und 64-Bit:
Debugger Output hat geschrieben:0000.00.00 00:00:00
1601.01.01 00:00:00
64-Bit Linux kann ich jetzt nicht testen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Date64 - Unixtime 64bit

Beitrag von NicTheQuick »

ts-soft hat geschrieben:64-Bit Linux kann ich jetzt nicht testen.
Aber ich:
0000.00.00 00:00:00
1600.01.01 00:00:00
Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Date64 - Unixtime 64bit

Beitrag von Sicro »

Hallo Danilo,

kannst du mal die minimalen und maximalen Werte für MacOS ermitteln? Dann könnte man diese ebenfalls im Code vermerken.
Danilo hat geschrieben:

Code: Alles auswählen

Debug FormatDate  ("%yyyy.%mm.%dd %hh:%ii:%ss", Date  (1600,1,1,0,0,0))
Debug FormatDate64("%yyyy.%mm.%dd %hh:%ii:%ss", Date64(1600,1,1,0,0,0))
Output:

Code: Alles auswählen

1969.12.31 23:59:59
1970.01.01 00:59:59
Gebe das mal in deinem Terminal ein:

Code: Alles auswählen

date --utc --date @-11676096000
Erhälst du dort die Ausgabe "Sa 1. Jan 00:00:00 UTC 1600"?
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Date64 - Unixtime 64bit

Beitrag von NicTheQuick »

Sicro hat geschrieben:Gebe das mal in deinem Terminal ein:

Code: Alles auswählen

date --utc --date @-11676096000
Erhälst du dort die Ausgabe "Sa 1. Jan 00:00:00 UTC 1600"?
Bei meinem Kollegen hier neben mir kommt nach Eingabe von 'date -r -11676096000' das Datum 'Sa 1. Jan 01:00:00 CET 1600. Dann wird wahrscheinlich in UTC dann 0:00:00 Uhr sein.
Bild
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Date64 - Unixtime 64bit

Beitrag von Sicro »

So wie es aussieht, wird die Sommerzeit/Winterzeit noch nicht korrekt unter Linux (und Mac?) verarbeitet, weshalb im Beispiel-Code z. B. folgendes ausgegeben wird:

Code: Alles auswählen

Debug FormatDate("%yyyy.%mm.%dd %hh:%ii:%ss", Date())     ; 2015.12.16 22:05:22
Debug FormatDate64("%yyyy.%mm.%dd %hh:%ii:%ss", Date64()) ; 2015.12.16 21:05:22
Sobald ich wieder genug Zeit habe, werde ich versuchen das Problem zu beheben.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Date64 - Unixtime 64bit

Beitrag von ts-soft »

Unter Linux gibt es IMHO keine Sommer/Winterzeit, sondern dort gilt immer UTC
während unter Windows die Localzeit, also GMT + ? gilt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Date64 - Unixtime 64bit

Beitrag von NicTheQuick »

ts-soft hat geschrieben:Unter Linux gibt es IMHO keine Sommer/Winterzeit, sondern dort gilt immer UTC
während unter Windows die Localzeit, also GMT + ? gilt.
Das ist aber Unsinn. Natürlich weiß Linux, in welcher Zeitzone es sich befindet:

Code: Alles auswählen

nicolas@tp-w530:~$ date +%Z%z
CET+0100
Bild
Benutzeravatar
xXRobo_CubeXx
Beiträge: 120
Registriert: 12.06.2015 16:08
Computerausstattung: Version 5.41 LTS
Wohnort: Wohnort
Kontaktdaten:

Re: Date64 - Unixtime 64bit

Beitrag von xXRobo_CubeXx »

Da kennt sich einer sehr gut mit Linux aus, nicht wahr Thomas ? :mrgreen:
Version 5.41 LTS :)
Antworten