# Fusi orari (scuola media)

Produrre una mappa che al click risponde con l'orario del proprio fuso
Un esempio: mappa interattive fusi orari time and date map

## Versione di Scratch utilizzata

La versione di scratch usata in questo progetto è scratch 3.0 online.

## Cosa richiede l'esercizio

Mostrare una mappa della terra intera con i rispettivi fusi orari. A partire dall'ora locale di Roma, Berlino, Europa Centrale, fornire il giorno e l'ora nei diversi fusi orari della terra.

## I fusi orari

La terra gira su se stessa e questo fa trascorrere le ore della giornata. Pensandoci un attimo ci si rende conto che non è possibile che l'orario sia lo stesso in tutte le zone della terra, ad esempio mezzogiorno è il momento in cui il sole è nel punto più alto del cielo cosa che si può verificare solo dalla parte della terra che si rivolge verso il sole, poichè la terra è una sfera rotante. Agli antipodi, dall'altra parte della terra per forza di cose è mezzanotte.
E così, poichè il sole si sposta in cielo di 15° ogni ora, infatti
${\frac {360^{\circ }}{24}}=15^{\circ }$
La terra è suddivisa in 24 spicchi, i fusi orari, larghi 15° l'uno, che ovviamente tengono conto dei confini degli stati. Tra due fusi vicini la differenza oraria è di un'ora.
Ognuno di questi fusi orari, in inglese time zones, ha un orario diverso dovuto alla diversa posizione del sole in cielo. Ad esempio quando in Italia sono le 10 del mattino in Inghilterra sono ancora le 9 e in Russia è già mezzogiorno.
Convenzionalmente, e per motivi storici, il meridiano 0 passa da Greenwich e così il fuso 0.
Mentre nel bel mezzo dell'oceano pacifico c'è la linea del cambiamento di data. Se vado dall'Alaska verso la Kamčatka passo dal sabato alla domenica, il mio calendario va avanti di un giorno, al contrario dalla Kamčatka verso l'Alaska il calendario andrà indietro di un giorno. (Tutto sarà più chiaro una volta costruito il nostro progetto Scratch)
Per calcolare un orario in un determinato luogo della terra che non si trova sul nostro fuso orario, che è il fuso dell'Europa Centrale, si può far riferimento alla mappa.
Ad esempio se in Italia sono le 7.15 del mattino di sabato in Messico è passata la mezzanotte da un quarto d'ora. Infatti l'Italia è sul fuso +1 rispetto a Greenwich mentre il Messico è sul fuso -6, quindi sono 7 fusi di differenza, basta contarli partendo dal Messico.
Se andiamo più ad ovest in Alaska sono le 21.15 di domenica sera, infatti se faccio l'operazione tenendo conto che il giorno è di 24 ore e dunque sottraendo ore all'orologio torno al giorno precedente trovo che
Ad est invece in Jacuzia, dove sono 9 ora avanti
sono le quattro e un quarto di domenica pomeriggio.
C'è da fare attenzione al cambiamento di data, se ad esempio in Italia sono le 2 del mattino di domenica, facendo l'operazione per trovare l'orario dell'Alaska, fuso -9 e tenuto conto di come funzionano le ore.
Cioè sono ancora le 6 di sera di sabato.
Al contrario alle 21 di sabato in Italia, corrispondono le
5 del mattino di domenica mattina sulla costa est della Cina.

## Progetto da completare

Per ottenere un calcolatore automatico di fuso orario possiamo completare il progetto Fuso Orario].

### Lo sfondo

Nel progetto Fuso Orario è già presente lo sfondo che mostra i fusi orari terrestri. L'immagine che mostra i fusi orari usata nel paragrafo qui sopra è disponibile su Wikimedia commons, e se si vuole costruire il progetto da zero, from scratch, la si può scaricare e ricaricare su ].

### Bottoni sulla mappa

Per interagire con la mappa si devono aggiungere dei bottoni che permettano di scegliere il fuso di cui si vuole sapere l'orario.
Le balls: ball1, ball2, di colori diversi simili a quelli dei tasselli in basso nei fusi dell'immagine serviranno come bottoni che rispondono con il fuso orario del fuso sul quale sono stati messi.

### Orario del fuso di riferimento

Una volta avviato il programma con la bandiera verde, green flag, sullo stage devono comparire data e ora del fuso orario di riferimento, nel caso dell'Italia quello di Roma-Berlino.
Cosa che si ottiene utilizzando la funzione apposita e scegliendo cosa, giorno, ora, minuti, visualizzare seguito dalla spunta.
E così sullo stage compaiono: data, mese, anno, ora e minuti.

### Giorno della settimana

E' importante conoscere il giorno della settimana poichè non tutti i fusi della terra si trovano allo stesso giorno. Ad esempio se sono le 4 del mattino di domenica in Europa in Amrica è ancora sabato. cosa che dovremo tenere in conto quando scriveremo il codice. Per ottenere il giorno della settimana si deve introdurre uno sprite che colleghi il giorno della settimana con i la funzione Day of the week che su Scratch produce dei numeri da 1 a 7 corrispondenti ai giorni.
Didascalia :
| Numero | Giorno | Day |
| 1 | domenica | Sunday |
| 2 | lunedì | Monday |
| 3 | martedì | Tuesday |
| 4 | mercoledì | Wednesday |
| 5 | giovedì | Thursday |
| 6 | venerdì | Friday |
| 7 | sabato | Saturday |
Quindi si deve creare una lista dei giorni della settimana, scegliere un sprite e assegnarli un codice che gli faccia dire l'elemento, l'item, della lista corrispondente al numero restituito dalla funzione day of the week.
* Scratch sprite
* Scratch list
* scratch code blocks

### Calcolo dell'orario del fuso scelto

Si deve tenere presente, come scritto sopra, che il fuso orario di Roma si trova a +1 ora rispetto al meridiano 0, 15° a est di Greenwich. Dunque si può passare a preparare un primo sprite bottone che calcoli l'orario del fuso sul quale sarà posizionato.
Facendo riferimento allo stage riportato qui sopra riportiamo il codice del terzo bottone, quello viola, posizionato sul fuso -9, fuso che comprende l'Alaska. Poichè la distanza in fusi tra il fuso -9 e il nostro fuso il +1 è di 10 fusi il codice risulta essere quello che che toglie al nostro orario 10 ore.
Nella prima parte del codice è presente un blocco if, se in italiano, che serve a controllare il giorno della settimana. Se l'operazione di sottrazione operazione di sottrazione o di somma per il calcolo del fuso da come risultato un numero negativo o un numero più alto di 24 prevede a cambiare giorno della settimana.
Una volta preparato il codice per un bottone basterà duplicare lo sprite, posizionarlo sullo stage e modificare il codice in base al fuso sul quale è posizionato.
Qui potete imparare il nome di città nel mondo appartenenti a diversi fusi: time and date map

## Progetto

Il progetto Fuso Orario funzionante da confrontare.

## Possibili miglioramenti

Un progetto più user friendly potrebbe avere zone da clikkare più estese e maggiormente corrispondenti ai fusi, e/o anche più città posizionate correttamente sulla mappa.