Az év 2525, és épp most indultál útnak, hogy felkeresd a Naprendszer összes bolygóját (Merkúr, Vénusz, Föld, Mars, Jupiter, Szaturnusz, Uránusz és Neptunusz). Az első állomás a Merkúr, ahol a vámszabályok szerint ki kell töltened egy űrlapot (a bürokrácia láthatóan nem csak a Földre jellemző). Ahogy átnyújtod az űrlapot a vámhivatalnoknak, az alaposan szemügyre veszi, és összevonja a szemöldökét. „Tényleg azt hiszed, hogy elhiszem, hogy mindössze 50 éves vagy? Inkább 200 felé lehetsz!”
Mulattatva várod, hogy a vámhivatalnok végre nevetni kezdjen, de halálosan komolynak tűnik. Rájössz, hogy földi években adtad meg a korodat, pedig a hivatalnok merkúrévekben várta! Mivel a Merkúr Nap körüli keringési ideje jóval rövidebb, mint a Földé, a Merkúr-években valójában sokkal idősebb vagy. Néhány gyors számítás után sikerül megadnod a korodat merkúrévekben. A vámhivatalnok elmosolyodik, elégedett, és int, hogy menj tovább. Gondolatban megjegyzed magadnak, hogy a jövőbeni vámvizsgálatok előtt számold ki a bolygónkénti életkorodat, hogy elkerüld az ilyen félreértéseket.
Ha azon tűnődsz, miért maradt ki Pluto, nézd meg ezt a YouTube-videót.
Adott egy életkor másodpercben. Számold ki, hány éves lenne valaki a Naprendszerünk egyik bolygóján.
Egy földi év 365,25 földi nappal, azaz 31 557 600 másodperccel egyenlő. Ha valakiről azt mondanák, hogy 1 000 000 000 másodperces, akkor 31,69 földi éves lenne.
A többi bolygónál számításba kell venned a keringési idejüket földi években:
| Bolygó | Keringési idő földi évben |
|---|---|
| Merkúr | 0.2408467 |
| Vénusz | 0.61519726 |
| Föld | 1.0 |
| Mars | 1.8808158 |
| Jupiter | 11.862615 |
| Szaturnusz | 29.447498 |
| Uránusz | 84.016846 |
| Neptunusz | 164.79132 |
A Föld Nap körüli egy teljes keringésének tényleges hossza közelebb van a 365,256 naphoz (1 sziderikus év). A Gergely-naptárban átlagosan 365,2425 nap van. Bár nem teljesen pontos, ebben a feladatban a 365,25-ös értéket használjuk. Ha többféleképpen is szeretnéd mérni az évet, nézd meg az Év szócikket a Wikipédián.
Néhány Rust-téma, amiről érdemes olvasnod a feladat megoldása közben:
Trait-ek: egyrészt a From trait, másrészt a saját trait-jeid implementálása
Alapértelmezett metódusimplementációk trait-ekhez
Makrók: egy makró használata csökkentheti a boilerplate kódot és növelheti az olvashatóságot
ennél a feladatnál. Például
egy makró egyszerre több típusra is implementálhat egy traitet,
bár az is teljesen rendben van, ha a years_during metódust magában a Planet traitben
implementálod. Egy makró akár a structokat és azok implementációit is definiálhatná.
A makrók használatának elkezdéséhez az alábbi helyeken találsz információkat:
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Rust nyelvet 99 feladat segítségével, valódi emberi mentorálással, mindez ingyen.