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.
sekundy.gif

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.
dmr.ino
(3.31 KiB) Staženo 231 x

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.
dmr.ino
(4.04 KiB) Staženo 324 x