Ahogy az időt mérjük, az elég zűrzavaros. Egy percben 60 másodperc van, egy órában pedig 60 perc. Ez az ókori Babilonból ered, ahol a számrendszerük alapja a 60 volt. Egy nap 24 órából áll, egy hét 7 napból, és hány nap van egy hónapban? Nos, a hónapok hossza nemcsak attól függ, melyik hónapról van szó, hanem attól is, milyen típusú naptárt használnak abban az országban, ahol élsz.
Mi lenne, ha ehelyett csak másodpercekkel fejeznénk ki az időtartamokat? Akkor a metrikus rendszer előtagjait használhatnánk, hogy a nagy másodpercszámokat könnyebben átlátható mennyiségekként írjuk le.
Ha egyszer kolonizáljuk a Marsot vagy valamely más bolygót, az idő mérése még zűrzavarosabb lesz. Ha valaki azt mondja, „év”, akkor egy földi évre gondol, vagy egy marsi évre?
Ennek a feladatnak az ötlete Vernor Vinge író „A Deepness in the Sky” című sci-fi regényéből származik. A regényben a szerző a metrikus rendszert használja az időmérés alapjaként.
A feladatod, hogy meghatározd, milyen dátum és időpont lesz egy adott dátum után egy gigaszekundummal.
Egy gigaszekundum egymilliárd másodperc. Ez egy egyes, utána kilenc nulla.
Ha 2015. január 24-én 22:00-kor (du. 10:00:00) születtél volna, akkor 2046. október 2-án 23:46:40-kor (du. 11:46:40) épp egy gigaszekundumos lennél.
A bash nem tud beépített módon értelmezni dátum-idő stringeket.
Ehhez a feladathoz külső segédprogramot kell meghívnod.
date parancs -d opciójával sokféle formátum értelmezhető.date parancsot és annak -f opcióját.Time::Piece moduljával is értelmezhetők az időbélyegek.A bash külső eszközök nélkül is képes formázni a dátumokat.
Ha adott egy egész szám típusú időérték (az epoch óta eltelt másodpercek), akkor a printf %()T formázója „strftime” stílusú formázást tud alkalmazni.
epoch=1234567890
printf '%(%Y-%m-%d %H:%M:%S)T\n' "$epoch"
# ==> 2009-02-13 18:31:30
# bash uses the `TZ` environment variable for the timezone.
TZ=Asia/Kolkata printf '%(%Y-%m-%d %H:%M:%S)T\n' "$epoch"
# ==> 2009-02-14 05:01:30
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Bash nyelvet 97 feladat segítségével, valódi emberi mentorálással, mindez ingyen.