Age on Other Planets
Вычислите, сколько вам было бы лет на каждой планете Солнечной системы в зависимости от их орбитальных периодов.
Об этом инструменте
Возраст на других планетах рассчитывает, сколько лет вам было бы на каждой планете нашей солнечной системы на основе того, сколько времени требуется каждой планете, чтобы облететь Солнце. Поскольку планеты имеют разные периоды обращения—Меркурий завершает орбиту всего за 88 дней, а Нептун требует 165 лет—ваш возраст совершенно различается в зависимости от того, на какой планете вы находитесь. Это забавный способ исследовать, как работают вместе относительное время и движение планет.
Просто введите дату своего рождения, и инструмент мгновенно покажет ваш возраст на всех восьми планетах. Расчет работает путем деления количества земных дней, которые вы прожили, на период обращения каждой планеты в днях. Вы сразу увидите, что на Меркурии вы были бы намного старше (который совершает много орбит) и намного моложе на Нептуне (который едва ли завершает даже одну орбиту за время человеческой жизни).
Этот инструмент полезен для студентов, изучающих солнечную систему и орбитальную механику, развлекателен для любого, кого интересует космос, и отличный повод для разговора. Он работает полностью в вашем браузере, поэтому никакие данные не хранятся и не отправляются никуда.
Часто задаваемые вопросы
Реализация кода
from datetime import date
ORBITAL_PERIODS = {
"Mercury": 0.2408467,
"Venus": 0.6151972,
"Earth": 1.0,
"Mars": 1.8808158,
"Jupiter": 11.862615,
"Saturn": 29.447498,
"Uranus": 84.016846,
"Neptune": 164.79132,
}
def age_on_planets(birth_date: date, ref_date: date | None = None) -> dict:
if ref_date is None:
ref_date = date.today()
earth_years = (ref_date - birth_date).days / 365.25
return {
planet: round(earth_years / period, 2)
for planet, period in ORBITAL_PERIODS.items()
}
birth = date(1990, 6, 15)
ages = age_on_planets(birth)
for planet, age in ages.items():
print(f"{planet:8s}: {age:8.2f} years")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.