Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Using datetime solution in Clear category for Sun Angle by adamspj
from typing import Union
from datetime import timedelta, datetime, date, time
def sun_angle(given_time: str) -> Union[float, str]:
angle_per_second = 180 / (12 * 60 * 60)
tdy = date.today() # an arbitrary date to instantiate datetime objects
dawn = time(6, 0, 0)
sunset = time(18, 0, 0)
now = time.fromisoformat(given_time)
dawn = datetime.combine(tdy, dawn) # make datetime objects from times and our arbitrary date
sunset = datetime.combine(tdy, sunset)
now = datetime.combine(tdy, now)
if now > sunset or now < dawn:
return "I don't see the sun!"
difference = timedelta()
difference = now - dawn
angle = difference.total_seconds() * angle_per_second
return angle
print("Example:")
print(sun_angle("07:00"))
assert sun_angle("07:00") == 15
assert sun_angle("12:15") == 93.75
print("The mission is done! Click 'Check Solution' to earn rewards!")
Feb. 1, 2024
Comments: