# Funzione che converte i gradi espressi in decimale in gradi esperessi in sessagesimale: gradi, primi e secondi def convertiGradiMinutiSecondi(totale_gradi_decimale): gradi=math.floor(totale_gradi_decimale) primiDecimale=round((totale_gradi_decimale-gradi)*60*100)/100 primi=math.floor(primiDecimale) secondiDecimale=(primiDecimale-primi)*60 secondi=math.floor(secondiDecimale) # Creo la stringa con gradi primi e secondi gradi_gms=f"{gradi}° {primi}' {secondi}\"" return gradi_gms import math import pytz import datetime as dt # Creo un oggetto datetime e lo inizializzo con l'ora di sistema locale now=dt.datetime.now() # Imposto l'ora al Time zone di Greenwich local_now_gmt=now.astimezone(pytz.timezone('GMT')) # Imposto l'ora al Time zone di Roma local_now_rm=now.astimezone(pytz.timezone('Europe/Rome')) # Estraggo dalla data e dall'orario di Greenwich il giorno le ore i minuti e i secondi giorno=local_now_gmt.day ore=local_now_gmt.hour minuti=local_now_gmt.minute secondi=local_now_gmt.second # Estraggo dalla data e dall'orario di Roma il giorno e le ore giorno_rm=local_now_rm.day ore_rm=local_now_rm.hour # Incremento le ore di Roma di 24 ore, se l'orario corrisponde già a quello giorno seguente. # L'orario del giorno seguente inizia di nuovo da zero. In questo caso se non si aggiungono # le 24 ore il calcolo del fuso orario tra Roma e Greenwich non è corretto. if giorno_rm>giorno: ore_rm=ore_rm+24 fuso_orario=ore_rm-ore totale_secondi=(((ore*60)+minuti)*60)+secondi angolo_rotazione_secondo=15/60/60 totale_gradi_decimale=round((angolo_rotazione_secondo*totale_secondi)*100)/100 # Converto i gradi espressi in decimale in gradi esperessi in sessagesimale: gradi, primi e secondi gradi_gms=convertiGradiMinutiSecondi(totale_gradi_decimale) # Calcolo la percentuale di rotazione corrente della Terra rispetto al giro completo percentuale_rotazione_corrente=round(totale_gradi_decimale/360*100*100)/100 # Calcolo la percentuale di rotazione della Terra che manca per completare un giro percentuale_rotazione_completa=round((100-percentuale_rotazione_corrente)*100)/100 print("----- Informazioni sulla rotazione delle Terra -----") print("Ora locale di Greenwich (GMT): "+str(local_now_gmt)) print("Ora locale di Roma: "+str(local_now_rm)) print("Fuso orario tra Roma e Greenwich: "+str(fuso_orario)+" ore") print("Rotazione corrente della Terra: "+gradi_gms) print("Percentuale rotazione corrente della Terra: "+str(percentuale_rotazione_corrente)+"%") print("Percentuale per rotazione completa della Terra: "+str(percentuale_rotazione_completa)+"%")