<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><title>RE: c_ letní zimní čas</title><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Text bubliny Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.StylE-mailovZprvy18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.TextbublinyChar
        {mso-style-name:"Text bubliny Char";
        mso-style-priority:99;
        mso-style-link:"Text bubliny";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=CS link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ha, já to říkal, že nějaká finta bude…<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] <b>On Behalf Of </b>Kručinský Ladislav<br><b>Sent:</b> Wednesday, August 14, 2013 12:47 AM<br><b>To:</b> HW-news<br><b>Subject:</b> RE: c_ letní zimní čas<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p><span style='font-size:10.0pt'>Ten vzorec je v knize &quot;Programátorské poklesky&quot; - nevzpomenu si kdo ji napsal ale je to brožurka která se strašně dobře čte. Mám ji doma, teď jsem na cestách. Pokud bude zájem pošlu scan té stránky.<br><br>Zdravím<br>Kručinský<br><br>-----Original Message-----<br>From: <a href="mailto:hw-list-bounces@list.hw.cz">hw-list-bounces@list.hw.cz</a> [<a href="mailto:hw-list-bounces@list.hw.cz">mailto:hw-list-bounces@list.hw.cz</a>] On Behalf Of Aleš Novák<br>Sent: Wednesday, August 14, 2013 12:24 AM<br>To: HW-news<br>Subject: Re: c_ letní zimní čas<br><br>Kdysi jsem narazil na výpočet velikonočního pondělí pomocí jednoho vzorce a žasnul jsem nad jeho jednoduchostí (relativně). Když si člověk uvědomí jak jsou velikonoce definované, tak je ten vzorec prostě geniální.<br><br>A s výpočtem dne, kdy se mění SEČ na SELČ a opačně je to podobné.<br>Jeden z výpočtů je např. zde: <a href="http://www.webexhibits.org/daylightsaving/i.html">http://www.webexhibits.org/daylightsaving/i.html</a><br>nebo <a href="http://delphiforfun.org/Programs/Math_Topics/DSTCalc.htm">http://delphiforfun.org/Programs/Math_Topics/DSTCalc.htm</a><br><br>Březnový den = (31 - (5 * yyyy / 4 + 4) mod 7)&nbsp;&nbsp; v 1:00 UTC<br>Říjnový den = (31 - (5 * yyyy / 4 + 1) mod 7)&nbsp;&nbsp; v 1:00 UTC<br><br>Údajně to funguje do roku 2099 (nebo než evropští soudruzi neurčí jinak :-))<br><br>Výpočty probíhají v celočíselné aritmetice, rok je v plném čtyřmístném tvaru. Mezi těmito dvěma časy je posun vzhledem k UTC 2 hodiny (SELČ), v ostatním čase je posun 1 hodina (SEČ). Je nutné vycházet z UTC a ne z místního času. Pokud by byl právě den změny v říjnu 2:30 ráno místního času, tak bez informace jestli je to SEČ nebo SELČ těžko zjistíme jestli je to SEČ nebo SELČ, jelikož tento místní čas nastane v 0:30 UTC stejně tak jako o hodinu později v 1:30 UTC.<br><br>Implementoval jsem tento výpočet do Simatiku ve kterém běží trvale UTC a já potřeboval spouštět určité funkce na základě místního času a zdá se, že to funguje.<br><br>Pokud by snad někoho zajímal ten výpočet v Simatiku tak klíčová část vypadá takhle (v jazyku SCL systému PCS7; Year, Month, Day, Hour je UTC z PLC; OffsetT je výsledek):<br><br>OffsetT := TIME#1h;<br>IF (Month = 3) THEN<br>&nbsp; DayChng := 31 - (5 * (2000 + Year) / 4 + 4) MOD 7; // until 2099<br>&nbsp; IF (((Day = DayChng) AND (Hour &gt;= 1)) OR (Day &gt; DayChng)) THEN<br>&nbsp;&nbsp;&nbsp; OffsetT := TIME#2h;<br>&nbsp; END_IF;<br>ELSIF ((Month &gt; 3) AND (Month &lt; 10)) THEN<br>&nbsp; OffsetT := TIME#2h;<br>ELSIF (Month = 10) THEN<br>&nbsp; DayChng := 31 - (5 * (2000 + Year) / 4 + 1) MOD 7; // until 2099<br>&nbsp; IF ((Day &lt; DayChng) OR ((Day = DayChng) AND (Hour &lt; 1))) THEN<br>&nbsp;&nbsp;&nbsp; OffsetT := TIME#2h;<br>&nbsp; END_IF;<br>END_IF;<br><br><br>Aleš<br><br><br>Dobrý den,<br>13. srpna 2013, 22:00:03, napsal jste:<br><br>JM&gt; Ale to by ta tabulka vyplivla taky. Stačilo by ji projíždět a až by<br>JM&gt; program narazil na datum vyšší, než je aktuální, podle toho, zda by<br>JM&gt; aktuální index byl sudý nebo lichý&nbsp; by řekl letní/zimní.<br><br>JM&gt; V Pascalu by to byl nějaký cyklus repeat - until , který by<br>JM&gt; zvětšoval index v tabulce až do okamžiku , kdy by aktuální&nbsp; datum bylo vyšší než v tabulce podle indexu.<br>JM&gt; Pak byste se jen podíval na aktuální index a podle lichý/sudý byste řekl letní/zimní.<br>JM&gt; Nebo má moje teorie nějakou mezeru ?<br><br><br>JM&gt; repeat<br><br><br>JM&gt; Dne 13. srpna 2013 21:44 Miroslav Draxal &lt;<a href="mailto:evik@volny.cz">evik@volny.cz</a>&gt; napsal(a):<br>JM&gt; Možná ano, rád bych to ale dynamicky počítal. Protože když tomu<br>JM&gt; zadám jakýkoli datum, tak to na mě vyplivne letní/zimní. Kdybych<br>JM&gt; měl tabulku, také tam bude hodně if. I když zřejmě méně. Ony ty IF<br>JM&gt; nevadí. Prostě fintička zdali není&nbsp;<br><br><br>JM&gt; -----Original Message-----<br>JM&gt; From: <a href="mailto:hw-list-bounces@list.hw.cz">hw-list-bounces@list.hw.cz</a><br>JM&gt; [<a href="mailto:hw-list-bounces@list.hw.cz">mailto:hw-list-bounces@list.hw.cz</a>] On Behalf Of Jirka MWW<br>JM&gt; Sent: Tuesday, August 13, 2013 9:36 PM<br>JM&gt; To: HW-news<br>JM&gt; Subject: Re: c_ letní zimní čas<br><br>JM&gt; Nebyla by lepší ( a kratší ) tabulka na příštích 100 let dopředu ?<br><br><br>JM&gt; Dne 13. srpna 2013 21:31 Miroslav Draxal &lt;<a href="mailto:evik@volny.cz">evik@volny.cz</a>&gt; napsal(a):<br><br>&gt;&gt; To je v poznámkách ty pravidla. Já jenom že pro všechny možnosti je to<br>&gt;&gt; nějak hodně IF… Jestli neexistuje nějaká finta****<br>&gt;&gt;<br>&gt;&gt; ** **<br>&gt;&gt;<br>&gt;&gt; ** **<br>&gt;&gt;<br>&gt;&gt; //na letní čas poslední neděli v březnu +1 hod ve 2hod na 3hod****<br>&gt;&gt;<br>&gt;&gt; // na zimní čas poslední neděli v říjnu -1 hod ve 3hod na 2hod****<br>&gt;&gt;<br>&gt;&gt; ** **<br>&gt;&gt;<br>&gt;&gt; ** **<br>&gt;&gt;<br>&gt;&gt; *From:* <a href="mailto:hw-list-bounces@list.hw.cz">hw-list-bounces@list.hw.cz</a> [<a href="mailto:hw-list-bounces@list.hw.cz">mailto:hw-list-bounces@list.hw.cz</a>]<br>&gt;&gt; *On Behalf Of *Vláďa Anděl<br>&gt;&gt; *Sent:* Tuesday, August 13, 2013 11:47 AM<br>&gt;&gt; *To:* HW-news<br>&gt;&gt; *Subject:* Re: c_ letní zimní čas****<br>&gt;&gt;<br>&gt;&gt; ** **<br>&gt;&gt;<br>&gt;&gt; Pokud vyhodnocuju signál DCF, tam ten příznak je. Počítač přechází na<br>&gt;&gt; letní/zimní čas nějak podle kalendáře a dělá to správně.&nbsp; Teď mi žena<br>&gt;&gt; říkala že základem je nějaké datum a to se upravuje tak, aby to vyšlo<br>&gt;&gt; ze sobody na neděli.<br>&gt;&gt; Anděl<br>&gt;&gt;<br>&gt;&gt; Dne 13.8.2013 10:32, Miroslav Draxal napsal(a):****<br>&gt;&gt;<br>&gt;&gt; Dobrý den,****<br>&gt;&gt;<br>&gt;&gt; ** **<br>&gt;&gt;<br>&gt;&gt; Neznáte někdo nějakou fintu jak zjistit, v dané datum a čas jaký je<br>&gt;&gt; čas?****<br><br>_______________________________________________<br>HW-list mailing list&nbsp; -&nbsp; sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a><br>_______________________________________________<br>HW-list mailing list&nbsp; -&nbsp; sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a></span><o:p></o:p></p><p class=MsoNormal><br><br>__________ Informace od ESET NOD32 Antivirus, verze databaze 8685 (20130813) __________<br><br>Tuto zpravu proveril ESET NOD32 Antivirus.<br><br><a href="http://www.eset.cz">http://www.eset.cz</a><o:p></o:p></p></div> <BR>
<BR>
__________ Informace od ESET NOD32 Antivirus, verze databaze 8685 (20130813) __________<BR>
<BR>
Tuto zpravu proveril ESET NOD32 Antivirus.<BR>
<BR>
<A HREF="http://www.eset.cz">http://www.eset.cz</A><BR>


 </body></html>