Skip to content
This repository has been archived by the owner on Feb 7, 2021. It is now read-only.

Possibile generazione di segnali SRC incoerenti #5

Open
Trainax opened this issue Oct 5, 2019 · 0 comments
Open

Possibile generazione di segnali SRC incoerenti #5

Trainax opened this issue Oct 5, 2019 · 0 comments

Comments

@Trainax
Copy link
Contributor

Trainax commented Oct 5, 2019

Al momento è possibile generare segnali SRC con i bit riguardanti il cambio dell'ora errati. I cambi dall'ora legale a quella solare e viceversa avvengono l'ultima domenica di marzo e l'ultima domenica di ottobre. Una soluzione a questo problema potrebbe essere implementare un controllo che verifichi che il nome del giorno della settimana corrisponda con il tipo di preavviso scelto:

  • Nessun cambio previsto nei prossimi 7 giorni: nessun controllo da fare.
  • Cambio entro 6 giorni: il giorno selezionato dev'essere "Lun."
  • Cambio entro 5 giorni: il giorno selezionato dev'essere "Mar."
  • Cambio entro 4 giorni: il giorno selezionato dev'essere "Mer."
  • Cambio entro 3 giorni: il giorno selezionato dev'essere "Gio."
  • Cambio entro 2 giorni: il giorno selezionato dev'essere "Ven."
  • Cambio entro un giorno: il giorno selezionato dev'essere "Sab."
  • Cambio oggi alle 02:00 oppure 03:00: il giorno selezionato dev'essere "Dom."

Se il giorno non corrispondesse si potrebbe visualizzare un errore che comunica all'utente la scelta errata del giorno della settimana / del preavviso del cambio dell'ora.

È inoltre attualmente possibile generare anche segnali SRC con i bit riguardanti il secondo intercalare errati. Secondo la convenzione le modifiche (inserimento oppure sottrazione di un secondo intercalare) devono essere applicate il 31 dicembre o il 30 giugno, alla mezzanotte UTC del giorno stabilito. Una soluzione semplice potrebbe sembrare effettuare un semplice controllo sul mese il quale dev'essere giugno oppure dicembre, ma è importante considerare anche il fatto che nei paesi la cui ora è in anticipo su quella del fuso orario principale (come accade in Italia) il secondo intercalare viene a cadere nel giorno successivo (1º gennaio o 1º luglio), quindi è necessario prevedere anche un'eccezione alla regola che permetta di impostare il preavviso anche in questi casi. Il preavviso di aggiunta / sottrazione di un secondo intercalare quindi dovrebbe poter essere impostato solo:

  • Se il mese è marzo oppure dicembre.
  • Se il mese è gennaio, il giorno è 1 e l'ora è minore di 1 (quindi fino alle 00:59).
  • Se il mese è luglio, il giorno è 1 e l'ora è minore di 2 (quindi fino alle 01:59).

Se nessuna di queste condizioni venisse rispettata si potrebbe visualizzare un errore che comunica all'utente la scelta errata del preavviso riguardante il secondo intercalare.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant