Převod sekund na datum
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Převod sekund na datum
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.
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
No na netu jsme našel jen vzorec:
snad ti to pomůže a zbytek nějak doděláš. 
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;





Re: Převod sekund na datum
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...
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
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.
Akorát to je od 1.1.1970, takže si tam budeš muset přičíst offset.
Re: Převod sekund na datum
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.
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
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.
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.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů