Re: Prikaz date s posuvem casu a posun letni/zimni cas
Petr Simek <[email protected]>
| Newsgroups | gmane.linux.region.czech |
|---|---|
| Message-ID | <Pine.WNT.4.64.1810092111490.3960@oleum> |
On Tue, 9 Oct 2018, Pavel Kankovsky wrote: >> Zrejme to nepripocitava jako dny ale spocita velikost pridane hodnoty >> ve vterinach a tu pak pripocte k casu ve vterinach a vysledek pak >> zkonvertuje podle casove zony ktere v te dobe bude platit. > > Ve skutečnosti to dělá složitěji. Rozloží výchozí čas na komponenty (struct > tm), příslušnou komponentu (v tomto případě tm_day) změní o zadaný počet a > pak to vyhodnotí voláním mktime(). > > Problém je, že ponechá původní hodnotu pro nastavení letního času (tm_isdst), > a tudíž se to mktime() pokusí po překročení hranice kompenzovat, což způsobí > pozorovaný posun. > >> Nemate napad jak to objejit aby nepohnul s tou hodinou ? > > Počítat to formálně v časové zóně, kde není letní čas? Zajimavy napad, napred si vypsat timezonu, vytahnout z ni hodinu, pak nastavit TZ=0000 a tu hodinu puvodni timezony pridat do toho posunovaciho retezce. Pak to da v obou pripadech stejnou vyslednou hodinu. > Rozdělit od sebe výchozí datum a čas, posunout jen datum a vrátit tam původní > čas? To ne, ten retezec v tom prikladu byl zjednoduseny, ja tam mam v zadani posunu i hodiny, tydny, mesice. Ale to vyse uvedene funguje protoze do toho posunovaciho retezce je mozne zadat hodinu 2x a ono to proste spocita dohromady. date je zajimave flexibilni program. > Pavel Kankovsky aka Peak "Que sçay-je?" *------------------------------------------------------------------------* | Petr Simek APS JU | | [email protected] | *------------------------------------------------------------------------* _______________________________________________ Linux mailing list [email protected] http://www.linux.cz/mailman/listinfo/linux