Das Excel - DatumsFormat und was dahinter steckt

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
Kiffi
Beiträge: 10715
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Das Excel - DatumsFormat und was dahinter steckt

Beitrag von Kiffi »

support.microsoft.com hat geschrieben:Excel speichert alle Datumsangaben als ganze Zahlen und alle Uhrzeitangaben als Dezimalbrüche. Bei diesem System kann
Excel Datums- und Zeitangaben wie andere Zahlen addieren, subtrahieren oder vergleichen; alle Datumsangaben werden
mithilfe dieses Systems verarbeitet.

In diesem System steht die fortlaufende Zahl 1 für den 01.01.1900, 12:00:00 Uhr. Zeitangaben werden als Dezimalzahlen
zwischen ,0 und ,99999 gespeichert, wobei ,0 für 00:00:00 steht und ,99999 für 23:59:59 Uhr. Die ganzen Zahlen für die
Datumsangaben und die Dezimalbrüche für die Zeitangaben können zu Zahlen kombiniert werden, die aus einem ganzzahligen
Teil und einem Dezimalteil bestehen. Beispielsweise entspricht die Zahl 32331,06 dem Datum 07.07.88 und der Uhrzeit
01:26:24.
Quelle: http://support.microsoft.com/kb/214094/de

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Seltsames Datumsformat in DB

Beitrag von HeX0R »

Aaah Danke Kiffi!!

Falls nochmal jemand das selbe Problem hat:

Code: Alles auswählen

#TIMESUB = 25569
#TIMEFAK = 86400

Procedure ExcelToUnixTimeStamp(D.d)
	Protected Result.d
	
	Result = D - #TIMESUB
	Result * #TIMEFAK
	ProcedureReturn Int(Result)
EndProcedure

Procedure.d UnixToExcelTimestamp(D)
	Protected Result.d
	
	Result = D / #TIMEFAK
	Result + #TIMESUB
	ProcedureReturn Result
EndProcedure

Debug FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", ExcelToUnixTimeStamp(40798.760812662))
Debug FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", ExcelToUnixTimeStamp(40792.4211445602))
Debug UnixToExcelTimestamp(Date())
[Edit]
Ich habe nur die Prozedurnamen angepasst, das war doch etwas verwirrend.
Zuletzt geändert von HeX0R am 13.09.2011 14:00, insgesamt 1-mal geändert.
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: Seltsames Datumsformat in DB

Beitrag von ts-soft »

HeX0R hat geschrieben: Falls nochmal jemand das selbe Problem hat:
Bitte in Tipps und Tricks nochmal posten, hier geht es verloren :allright:
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
Antworten