1

Téma: Rozklad času na rok, měsíc, den atd

narazil jsem na zajimavy problem - pro svuj program potrebuji na vice mistech rozlozeny aktualni cas, a aby se mi cas behem vypoctu nemenil (protoze vypocet trva konecny cas), tak jsem si ho ulozil takhle:

 second_var = sys[10];
 minute_var = sys[9];
 hour_var = sys[8];
 day_var = sys[5];
 month_var = sys[6];
 year_var = sys[7];

ale presto se mi stava, ze hodnoty v tehle promennych si neodpovidaji stejnemu casovemu udaji - treba nactu sekundy v case 23:59, tj v second_var mam 59, ale nez dojdu o radek niz k minutam, tak mi cas poskoci o 1s ... a v minute_var mam hodnotu 0 - coz mi rozbije beh programu sad
Prislo mi to krajne nepravdepodobne, ale stava se mi to. Napada vas prosim nejake jine reseni nez si sam rozebrat sys[4] ???
V mem kodu pochopitelne nejde o tisiciny vteriny ... jen pri jednom rozkladu dostat konzistentni casove udaje

2

Re: Rozklad času na rok, měsíc, den atd

Ty údaje "nelžou" - pokud se mezi jednotlivými příkazy překlopí např. minuta, pak to samozřejmě nemůže být konzistentní. Tyto hodnoty jsou určené pro použití jako samostatné (např. jen pro sledování překlopení hodiny, nebo x minut atd.).

Pro daný úkol lze doporučit jedině ručně rozpadnout hodnoty z UTC času (NTP).

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

3

Re: Rozklad času na rok, měsíc, den atd

ja pochopitelne netvrdim, ze je nekde chyba, rozumim tomu, proc se to tak deje ... akorat poukazuji na to, ze pouziti sys[5-10] muze mit hacek, protoze existuje nemalo pripadu, kdyz se hodi rozlozit jeden konkretni casovy udaj - a to ty funkce neumoznuji. (muzu popsat, k cemu konkretne se to hodi mi, ale nevim, jestli to nekoho zajima)

Idealni by bylo, kdyby funkce rozkladajici sys[4] byly verejne dostupne pro pouziti v kodu ... ? Prece jenom jejich implementace neni uplne trivialni.

4

Re: Rozklad času na rok, měsíc, den atd

V pohodě, šlo jen o čistě technické vyjádření k věci.

Za to poukázání samozřejmě díky, třeba to někomu jinému pomůže.

SDS-C interně používá standardní C funkci gmtime_r(UTCseconds, outTimeStruct).
Toto se provede před každým dotazem na konkrétní sys[] který právě patří k čtení jednotlivých položek rozpadlého času.

Takže - pokud je požadavek toto zduplikovat v SDS-C, pak stačí najít zdrojový kód funkce gmtime_r() a přepsat to do SDS-C.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

5

Re: Rozklad času na rok, měsíc, den atd

mezitim jsem si vymyslel jine reseni, ktere mi staci - ze sys[4] si sam najdu vteriny, minuty a hodiny (coz je trivialni, staci proste deleni) a sys[5-7] pouziji pro dny, mesice a roky (jejichz zjisteni neni zcela trivialni uloha) a jenom si dam pozor, abych nebyl blizko pulnoci - coz je taky triv. (presneji receno mam to jeste trochu jinak, ale tohle vystihuje podstatu toho reseni)