Wintertijd

Voor mijn klokken hier gebruik ik internet om de tijd in te stellen.
Heel gemakkelijk maar door de zomer/wintertijd omschakeling moet ik 2 keer per jaar het programma aanpassen.
Ik gebruik deze:

//const long utcOffsetInSeconds = 7200;// zomertijd
const long utcOffsetInSeconds = 3600;// wintertijd

// Define NTP Client to get time
WiFiUDP ntpUDP;

NTPClient timeClient(ntpUDP, "0.nl.pool.ntp.org",utcOffsetInSeconds);

Heeft iemand een tijdserver die de zomer/wintertijd zelf aanpast?

Ik zou het anders kunnen oplossen door een schakelaar bij te plaatsen maar als het met de software gaat is het toch leuker.

JoWi

Special Member

Heeft jouw systeem geen functie als localtime() oid om UTC naar de lokale tijdzone te converteren ?

Ignorance is bliss
Tidak Ada

Golden Member

Niet Wintertijd, maar Standaardtijd. Afwijkend is de Zomertijd....

Rommelige werkplek? In de natuur is wanorde de meest stabiele toestand; de entropie is dan maximaal. Het handhaven van "orde" kost daarom altijd energie. ----> TUBE COLLECTORS ASSOCIATION - †
Arco

Special Member

Is simpel zelf uit te rekenen: (functie voor Europese en USA DST)
fDstChanged is 1 als situatie is gewijzigd sinds vorige aanroep.
fDst is 1 bij DST, en anders 0

pic basic code:


structure TimeStruct
  dim ss as byte     ' seconds
  dim mn as byte     ' minutes
  dim hh as byte     ' hours
  dim md as byte     ' day in month, from 1 to 31
  dim wd as byte     ' day in week, monday=0, tuesday=1, .... sunday=6
  dim mo as byte     ' month number, from 1 to 12 (and not from 0 to 11 as with unix C time !)
  dim yy as word     ' year Y2K compliant, from 1892 to 2038
end structure

Dim TS2         As TimeStruct
    DSTState    As Word
    OldDSTState As Word
    fDst        As Byte
    fDstChanged As Byte 

Const DST_NONE       = 0
      DST_EU         = 1
      DST_USA        = 2
      
Const DstParm As Byte[16] = (31, 5,31, 2, 3,10, 2, 3,       'EU settings
                             14, 2, 7, 2, 3,11, 2, 2)       'USA settings

'==============================================================================
Sub Function Is_DST(Dim pZone As Byte) As Byte               'Tests if it's DST
'==============================================================================
  Dim lBegin, lEnd, lZone As Byte
  '----------------------------------------------------------------------------
  If pZone Then
    lZone = (pZone - 1) << 3
    Result = fDst
    lBegin = (((5*TS2.yy) div 4)-(TS2.yy div 100)+(TS2.yy div 400)) Mod 7
    lEnd   = DstParm[lZone+2] - (lBegin+DstParm[lZone+3]) Mod 7
    lBegin = DstParm[lZone+0] - (lBegin+DstParm[lZone+1]) Mod 7
    '--------------------------------------------------------------------------
    If (TS2.mo <= DstParm[lZone+4]) Or (TS2.mo >= DstParm[lZone+5]) Then
      If ((TS2.mo = DstParm[lZone+4]) And (TS2.md < lBegin)) Or
         ((TS2.mo = DstParm[lZone+5]) And (TS2.md > lEnd)) Or
         ((TS2.mo = DstParm[lZone+4]) And (TS2.md = lBegin) And (TS2.hh < DstParm[lZone+6])) Or
         ((TS2.mo = DstParm[lZone+5]) And (TS2.md = lEnd) And (TS2.hh >= DstParm[lZone+7])) Then
        DSTState = 1
      End If
    End If
    If (TS2.mo >= DstParm[lZone+4]) Or (TS2.Mo <= DstParm[lZone+5]) Then
      If ((TS2.mo = DstParm[lZone+4]) And (TS2.md > lBegin)) Or
         ((TS2.mo = DstParm[lZone+5]) And (TS2.md < lEnd)) Or
         ((TS2.mo = DstParm[lZone+4]) And (TS2.md = lBegin) And (TS2.hh >= DstParm[lZone+6])) Or
         ((TS2.mo = DstParm[lZone+5]) And (TS2.md = lEnd) And (TS2.hh < DstParm[lZone+7]-1)) Then
        DSTState = 2
      End If
    End If
    If DSTState = 0 Then
      If TS2.mo = DstParm[lZone+4] Then DSTState = 2 Else DSTState = 1 End If
    End If
    If DstState = 2 Then fDst = 1 End If
    If DstState = 1 Then fDst = 0 End If

    If OldDSTState <>  DSTState Then
      fDstChanged = 1
      OldDSTState = DSTState
    Else
      fDstChanged = 0
    End If
  End If
End Sub
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
buckfast_beekeeper

Golden Member

Bepalen wanneer het moment van omschakelen is. Als ik me niet vergis is daar een librarie voor. Anders zelf even wat schrijven. Is geen grote moeite. Je hoeft tenslotte maar te kijken bij setup en in de maanden maart en oktober en dan nog pas vanaf de 25ste van die maand. Dan even de laatste zondag bepalen. Om 1h UTC is de omschakeling.

Kent uw tijd librarie geen functie timezone()? Hoef je gewoon 1 en 2 in te vullen.

edit: onze standaardtijd is normaal UTC. Van 7,5°OL tot 7,5°WL vallen we perfect in de UTC tijdzone. Meest oostelijke punt NL = 07° 13' 14" OL en voor B = 6°24' OL. Onze huidige tijd is nog een gevolg van WO II. Ingevoerd in 1940.

[Bericht gewijzigd door buckfast_beekeeper op woensdag 28 oktober 2020 12:59:03 (22%)

Van Lambiek wordt goede geuze gemaakt.

Inderdaad, Localtime gebruiken als die er is (of te krijgen is).

Voor de EU:

c code:


// day: 1-31, dag van de maand
// month 1-12, maand van het jaar
// dayofweek: 0-6 dag van de week, 0=zondag.

int isSummerTime(int day, int month, int dayofweek){
  if ((month >=4) &&( month <= 9)) 
    return 1;  // april-septemper is altijd zomertijd
  if ((month <=2) || (month >= 10))
    return 0; // jan-feb, nov-dec altijd winter
  // Het is Maart of Oktober. 
  // day-dayofweek is datum van vorige zondag.
  // Dat is de laatste v/d maand als dat >= 25
  // (day-dayofweek is negatief als vorige zondag in vorige maand viel. Maakt voor  algorithme niet uit.
  if ((day-dayofweek) >= 25) {
    if (month == 3)
      return 1;  // Maart, zomertijd is ingegeaan
    else
      return 0;  // October, zomertijd is voorbij
  } else {
    if (month == 3)
      return 0;  // Maart, zomertijd is nog niet ingegeaan
    else
      return 1;  // October, zomertijd is nog niet voorbij
  }
Arco

Special Member

Dat schakelt niet netjes om 2/3 uur 's nachts... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
big_fat_mama

Zie Paulinha_B

Doe zoals ik: zet al uw klokken op UTC, en maak u gewoon om te denken in UTC.

Die gekkerds die iets anders willen gebruiken moeten het zelf maar weten; UTC staat hier in de lage landen het dichtste bij wat de zon doet. Daar komt het toch maar op aan?

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Op 28 oktober 2020 12:58:50 schreef Arco:
Dat schakelt niet netjes om 2/3 uur 's nachts... ;)

Tja, dat is nog een if-je extra. Left as exercise for the reader.
En als TS nu met de hand zijn code moet aanpassen 2x per jaar, dat doet die vast niet midden in de nacht ;-)

Op 28 oktober 2020 12:59:52 schreef big_fat_mama:
Doe zoals ik: zet al uw klokken op UTC, en maak u gewoon om te denken in UTC.

Die gekkerds die iets anders willen gebruiken moeten het zelf maar weten; UTC staat hier in de lage landen het dichtste bij wat de zon doet. Daar komt het toch maar op aan?

Tja, de school van mijn kinderen gebruikt geen UTC. Geen van mijn klanten wil afspraken maken in UTC (en zij betalen uiteindelijk mijn klokken)...
Dus ik blijf voorlopig nog maar bewust van de zomertijd/wintertijd.

big_fat_mama

Zie Paulinha_B

Dus ik blijf voorlopig nog maar bewust van de zomertijd/wintertijd.

Tsja, het staat eenieder vrij om voor de eigen ellende te kiezen ;) In laatste instantie moeten we daar blij om zijn.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Op 28 oktober 2020 12:21:22 schreef Looier:
[...]
Ik zou het anders kunnen oplossen door een schakelaar bij te plaatsen maar als het met de software gaat is het toch leuker.

NTP geeft slechts de UTC tijd terug, er zijn andere protocollen om de tijd offset op te halen afhankelijk van je tijdzone regiment, gezien dit soort regelgeving door de tijd heen kan veranderen. In Europa hebben we nog een korte tijd voordat de zomertijd afgeschaft wordt, daarna zijn de regels dus anders.

Ik zou gewoon een schakelaartje gebruiken, eventueel een code wieltje om ook naar andere tijdzones te gaan.

Meep! Meep!
Sine

Moderator

Tijdzones is een ellende, zeker als je de hele wereld wilt kunnen doen.

Never, ever deal with time zones if you can help it ...
https://www.youtube.com/watch?v=-5wpm-gesOY

mel

Golden Member

Makkelijk he, DCF :P

[Bericht gewijzigd door Sine op woensdag 28 oktober 2020 16:20:59 (88%)

u=ir betekent niet :U bent ingenieur..
Sine

Moderator

In Duitsland wel ja, zolang we daar nog synchroon mee lopen.

Van mij mogen ze die zomertijd morgen afschaffen.

big_fat_mama

Zie Paulinha_B

Tijdzones is een ellende

Van mij mogen ze die zomertijd morgen afschaffen.

Tweemaal akkoord! Voor mezelf heb ik de zomertijd dan ook afgeschaft, maar, toegegeven, het is wat onhandig om telkens te moeten omrekenen. Het went, weliswaar.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
big_fat_mama

Zie Paulinha_B

Enne, van DCF gesproken: hoe komt het toch dat, vooral in NL, nogal wat lieden DCF mordicus willen gebruiken, maar bijna niemand in BE? Terwijl hier in het zuiden dan ook nog eens een Franse tegenhanger beschikbaar zou zijn, als ik het goed begrijp, zender Allouis? Met vergelijkbaar dataformaat, maar op frekwentie 162 kHz?

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
bprosman

Golden Member

Op 28 oktober 2020 16:37:44 schreef big_fat_mama:
Enne, van DCF gesproken: hoe komt het toch dat, vooral in NL, nogal wat lieden DCF mordicus willen gebruiken, maar bijna niemand in BE? Terwijl hier in het zuiden dan ook nog eens een Franse tegenhanger beschikbaar zou zijn, als ik het goed begrijp, zender Allouis? Met vergelijkbaar dataformaat, maar op frekwentie 162 kHz?

Onbekend maakt onbemind ?

De jongere generatie loopt veel te vaak zijn PIC achterna.
RAAF12

Golden Member

Op 28 oktober 2020 16:14:59 schreef mel:
Makkelijk he, DCF :P

Inderdaad, en die neemt ook de schrikkeljaarseconde mee. DCF is er al zo lang en Elektuur begon al snel met ontwerpen. Nu koop je zoiets bij AliBB voor een tientje. Een Duits model heeft ook mijn voorkeur boven een Frans type. Dat geldt ook voor auto's :-)

buckfast_beekeeper

Golden Member

Al sinds midden jaren 80 een DCF wekker een Junghans Mega Alarm http://www.stefanrohloff.de/artikel/a01/wjm.jpg. Werkt nog steeds en komt gemakkelijk meerdere jaren toe met 1 AA batterij. Mijn polshorloge, al vele jaren DCF. Weerstation DCF met MeteoTime.

Maar ja ik heb dan ook 9 jaar in Duitsland geleefd en daar was DCF heel normaal.

Zelfs als Duitsland en B beslissen een ander uur regime te kiezen kan ik met deze uurwerken nog verder. Je kan ze allemaal instellen op een andere tijdzone. Bit 16 zal dan eeuwig 0 worden en naargelang de keuze zal bit 17 eeuwig 1 blijven indien ze kiezen voor CET+1 of anders bit 18 als ze kiezen voor CET. Voor UTC gaat D nooit kiezen.

Geef mij maar het ganse jaar rond zomertijd. Wat hebben we er aan dat het midzomer om 2:42 (UTC) of 3:42 (CET) begint te schemeren? Heb je late shift, dan kom je zelfs midzomer met de donkere thuis. Wordt je toch gewoon depri van. Einde civiele schemering 20:46 (UTC) of 21:46 (CET).

Nu gebeurd de omschakeling nog gelijktijdig. Hebben we op het vaste continent grotendeels allemaal CET en CET +1. Hoe prettig gaat het worden als Duitsland kiest voor CET +1, NL voor CET en B UTC? De meest oostelijke punt van Duitsland ligt op ongeveer 15° OL. Een bevraging heeft geleerd dat daar een meerderheid te vinden is voor permanente zomertijd. Ook Italië zou heel veel kans mee gaan naar permanente zomertijd en dat Oostenrijk Duitsland volgt, is te verwachten.

@BFM: Ook de Engelse tijdzender (MSF60) zou hier te ontvangen moeten zijn.

edit:

Op 28 oktober 2020 15:50:19 schreef roadrunner84:
[...]
In Europa hebben we nog een korte tijd voordat de zomertijd afgeschaft wordt, daarna zijn de regels dus anders.
[...]

Als ik de verschillende persartikels lees, zowel in B als in D, dan zal het niet voor 2021 zijn. Deze timing kan niet meer gehaald worden. DE beslissingen zijn nog niet echt genomen en alles moet nog gestemd in de diverse landen. We weten allemaal hoe snel de politiek en zeker de EU werkt. Meer en meer les je dat alles een stille dood zal sterven en blijven zoals het vandaag is.

Zo heet wordt de soep waarschijnlijk niet gegeten. De kans dat de afschaffing van de zomertijd in 2021 nog doorgaat is inmiddels zeer klein. De aanhoudende coronacrisis maakt de deadline zeer onwaarschijnlijk. De discussies in de Europese Raad zijn nog niet opgestart. Zelfs een snelle overeenkomst zal niet meer op kunnen tegen de bureaucratische molen van de Europese Unie.

bron

[Bericht gewijzigd door buckfast_beekeeper op woensdag 28 oktober 2020 19:16:41 (26%)

Van Lambiek wordt goede geuze gemaakt.
Tidak Ada

Golden Member

Bij permanente zomertijd ben ik een dag jonger....

[Bericht gewijzigd door Tidak Ada op woensdag 28 oktober 2020 23:13:39 (24%)

Rommelige werkplek? In de natuur is wanorde de meest stabiele toestand; de entropie is dan maximaal. Het handhaven van "orde" kost daarom altijd energie. ----> TUBE COLLECTORS ASSOCIATION - &#8224;
Frederick E. Terman

Honourable Member

Op 28 oktober 2020 18:52:50 schreef buckfast_beekeeper:
@BFM: Ook de Engelse tijdzender (MSF60) zou hier te ontvangen moeten zijn.

Zeker, zeker. Ik kocht bij d'n Aldi voor zes euro een wekkertje dat DCF, MSF, JJY en WWV slikt.
Het is technisch erg grappig, vooral voor dat geld. Maar praktisch is het geen succes, want hoewel het goed bedoeld is: kies de sterkste zender, staat hij bij mij dus soms op MSF en soms op DCF, omdat beide even sterk zijn. :)

Als ik het voor het zeggen had, hield ook ik jaarrond zomertijd aan. Aan de andere kant, het interesseert me in werkelijkheid weinig.
De mensen die het hardst roepen dat ze nog weken last hebben van de klok verzetten, zijn ook degenen die meermalen 's jaars ettelijke tijdzones doorkruisen voor weer eens een vakantietje. Dus nee, ik neem ze niet serieus.
Ik had trouwens die hele wintertijd glad vergeten zondag. Het maakte niets uit, want alle klokken hadden zich aangepast; ik merkte het pas aan het klokje in mijn oude Toyota.

Keramisch, kalibratie, parasitair: woordenlijst.org

even een tip nog:

maak in jouw code ook een check of het omschakelen ook daadwerkelijk is gedaan, anders mis je de een uurtje als het apparaat uit staat tijdens de overgang van zomer-wintertijd en winter-zomertijd.
(spreek uit ervaring...)

RTFM, dan pas vragen...
fzwart

Golden Member

Kijk hier eens voor inspiratie: http://blog.crox.net/archives/89-Convert-NTP-to-DCF77.html
Deze gebruik ik om mijn DCF klok op tijd te zetten en werkt met zomer/winter tijd.

Al is een spreekwoord nog zo raar, als het rijmt dan is 't waar
PE9SMS

Special Member

Op 28 oktober 2020 16:21:25 schreef Sine:
In Duitsland wel ja, zolang we daar nog synchroon mee lopen.

Van mij mogen ze die zomertijd morgen afschaffen.

Kan me nou niet echt voorstellen dat NL en D een verschillende tijd gaan kiezen... Binnen de Benelux is meen ik al afgesproken dezelfde (welke dat ook zal zijn) tijd aan te houden.

This signature is intentionally left blank.
RAAF12

Golden Member

Op 28 oktober 2020 23:08:54 schreef Tidak Ada:
Bij permanente zomertijd ben ik een dag jonger....

Hier staat de dagenteller, even je geboortedatum inkloppen...
https://www.berekenen.nl/a-z/leeftijd-in-dagen-berekenen
De tool houd rekening met de schrikkeljaren!