Stránka 1 z 1
Převod sekund na datum
Napsal: 08 pro 2017, 19:15
od AstroMiK
Zdravím.
Je možné na Arduinu nějak jednoduše převést počet sekund, které uběhly od 1.1.2000, na nějaký "čitelný" textový řetězec, ve kterém by byl vidět datum a čas?
Pro jednoduchost mi nezáleží ani přechodech SEČ/SELČ a už vůbec ne na nějakých přestupných sekundách.
Příklad:
Na začátku mám číslo 566072104 (to je počet sekund od 1.1.2000 00:00:00) a potřeboval bych z toho získat "8.12.2017 18:15:04".
Třeba v Excelu je to jednoduché (obrázek níže), ale já bych to potřeboval v Arduinu.
Re: Převod sekund na datum
Napsal: 08 pro 2017, 19:58
od SkullKeep
No na netu jsme našel jen vzorec:
Kód: Vybrat vše
int sekundy = 0, minuty = 0, hodiny = 0, dny = 0, zadana_hodnota = 176400;//v sekundach
sekundy = zadana_hodnota % 60;
zadana_hodnota /= 60;
minuty = zadana_hodnota % 60;
zadana_hodnota /= 60;
hodiny = zadana_hodnota % 24;
dny = zadana_hodnota / 24;
snad ti to pomůže a zbytek nějak doděláš.

Re: Převod sekund na datum
Napsal: 08 pro 2017, 20:21
od AstroMiK
Hodiny, minuty a sekundy jsou to nejjednodušší, protože trvají pořád stejně dlouho.
Největší problém je ale s dny v měsíci, měsíci a roky - protože každý měsíc je jinak dlouhý a občas se vyskytuje i přestupný rok.
To je to, s čím nějak nemůžu hnout.
Ale dík za snahu...
Re: Převod sekund na datum
Napsal: 08 pro 2017, 22:10
od petan
Zkus toto:
https://www.pjrc.com/teensy/td_libs_Time.html
Akorát to je od 1.1.1970, takže si tam budeš muset přičíst offset.
Re: Převod sekund na datum
Napsal: 09 pro 2017, 00:03
od AstroMiK
S tou knihovnou se mi to zdá nějaký moc složitý.
Zkusil jsem to vymyslet trochu jednoduššeji.
V příloze je program, který by měl převádět počet dní od 1.1.2000 na datum.
(Čas už pak nebude problém doplnit - viz příspěvky vše.)
Ale zatím mi to nějak nefunguje.
Mám tam testovací smyčku, která do prodprogramu posílá čísla od 1 do 2000 a očekávám, že se v sériovém monitoru budou zobrazovat datumy od 1.1.2000 až do 23.6.2005 (to je 2000 dní).
Program pracuje správně až do konce roku 2003, ale pak se zblázní a místo 1.1.2004 pokračuje dál 32.12.2003, 33.12.2003, ...... až do 569.12.2003.
Ještě tam je nějaká chyba, ale myslím, že tudy vede cesta.
Re: Převod sekund na datum
Napsal: 09 pro 2017, 01:25
od AstroMiK
Tak už jsem na to přišel.
Chyba v předchozím příspěvku byla ve špatně nadeklarovaném poli (stačilo zvětšit pole ze 48 prvků na 49).
Funkční program pro převod ze sekund na datum a čas dávám do přílohy.