Se olikin ihan simppeli, datetime moduuli muuntaa näppärästi: datetime.fromtimestamp(epoch)
Yksi toinen harjoituksista tuotti enemmän päänvaivaa datamuunnosten kanssa...tämmöinen simppeli auringonlaskuaikoja tuottava ohjelma (ei toimi ilman api-keytä joka tuosta on obfuskoitu):
import urllib.parse
import requests
import json
from datetime import datetime
import time as time_
from datetime import time, datetime
from timezonefinder import TimezoneFinder
from pytz import timezone, utc
tf=TimezoneFinder()
#riippuvuudet, muista asentaa timezonefinder ja pytz
main_api ="
http://www.mapquestapi.com/geocoding/v1/address?"
key = "******"
loc1 = "&location="
print("Anna kaupunki")
locationcity = input()
print("Anna maa englanniksi")
locationcnt = input()
locationcountry = "+"+locationcnt
print("Anna postinumero")
locationzp = input()
locationzip = "+"+locationzp
location =loc1+locationcity+locationcountry+locationzip #täälysti käsittely palvelupyynnön tuolle geolokaatioapi:lle
url = main_api+key+location
json_data = requests.get(url)
data=json_data.json()
lat2 = data['results'][0]['locations'] #hirmuinen datanpyöritys
lat3 = []
for item in lat2: #tääpalauttaa sitten vihdoin sen latitudin ja longitudin
lat3.append(item['latLng'])
latfinal =[]
for item in lat3: #nyt saataan latitudi listana
latfinal.append(item['lat'])
lngfinal=[] #ja longitudi
for item in lat3:
lngfinal.append(item['lng'])
lat = latfinal[0] #syötetään ne
lng = lngfinal[0]
main_api2="
https://api.sunrise-sunset.org/json?"
formatted = "1"
url2 = main_api2 +urllib.parse.urlencode({"lat":lat, "lng":lng, "formatted":formatted})
json_data = requests.get(url2).json()
#otetaan nousuaika datasta, muokataan sieltä tunti int:iksi ja muutetaan 24h muotoon
nousuaika = json_data['results']['sunrise']
if len(nousuaika) == 10:
nousuaika = "0"+nousuaika
nousuaikah=nousuaika[:2]
nousuaikam=nousuaika[3:5]
nousuaikas=nousuaika[6:8]
nousuinth = int(nousuaikah)
noipap= nousuaika[9:]
if noipap == "PM":
nousuinth = 12+nousuinth
laskuaika = json_data['results']['sunset']
#sama laskuajalle
if len(laskuaika) == 10:
laskuaika = "0"+laskuaika
laskuaikah=laskuaika[:2]
laskuaikam=laskuaika[3:5]
laskuaikas=laskuaika[6:8]
laskuinth = int(laskuaikah)
laipap= laskuaika[9:]
if laipap == "PM":
laskuinth = 12+laskuinth
#täällä tapahtuu aikavyöhyketaikuus
today = datetime.now()
tz_target = timezone(tf.certain_timezone_at(lng=lng, lat=lat))
today_target = tz_target.localize(today)
today_utc = utc.localize(today)
offset = (today_utc - today_target).total_seconds() / 3600
nousuaikaloc = int(nousuinth +offset)
nousuaikalocs = str(nousuaikaloc)
print("Aurinko nousee "+nousuaikalocs+":"+nousuaikam+":"+nousuaikas)
laskuaikaloc = int(laskuinth + offset)
laskuaikalocs = str(laskuaikaloc)
print("Aurinko laskee "+laskuaikalocs+":"+laskuaikam+":"+laskuaikas)
Paljon muuttujia mutta no ne oli tarpeen jotta itse pysyi kärryillä ohjelman puuhista...