Zadanie
Załóżmy, że urodziłeś się pierwszego dnia Ery Uniksa 1 i przeżyjesz 80 lat. Ile to dni, tygodni i miesięcy?
Dni:
$ echo $((80*365))
29200
$ qalc -t '80 years / days'
29220
Tygodni:
$ echo $((80*52))
4160
$ qalc -t 'round(80 years / weeks)'
4174
Miesięcy:
$ echo $((80*12))
960
Data 80. urodzin to:
$ qalc -t 'addYears(date(1970),80)'
"2050-01-01"
$ qalc -t 'addYears(1970-01-01;80)'
"2050-01-01"
Dni do przeżycia:
$ qalc -t 'days(date(1970),date(1970+80))'
29220
Do dzisiaj minęło:
$ qalc -t 'days(date(1970),today)'
18921
Liczba przeżytych pełnych miesięcy:
$ qalc -t 'floor(yearfrac(date(1970),today) * 12)'
622
Wizualizacja
Ile już minęło a ile zostało? Zobaczmy…
Oczekiwana długość życia w miesiącach:
$ export LIFE_EXPECT=$((80*12))
Liczba przeżytych miesięcy:
$ export MONTHS_LIVED=$(qalc -t 'floor(yearfrac(date(1970),today) * 12)')
Pokaż w dekadach:
$ for i in $(seq $LIFE_EXPECT); do
[ $i -gt $MONTHS_LIVED ] \
&& m+='\033[0;40;32m-\033[0m' \
|| m+='\033[0;40;31mx\033[0m';
(( $i % 120 == 0 )) && echo -e $m && unset m;
done
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx---------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
Pokaż w cyklach pięcioletnich:
$ for i in $(seq $LIFE_EXPECT); do
[ $i -gt $MONTHS_LIVED ] && m+='◻' || m+='◼';
(( $i % 60 == 0 )) && echo $m && unset m; done
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼
◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻
◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻
◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻
◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻
◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻
◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻
More information
Liczbę dni do przeżycia można obliczyć też tak:
$ qalc -t 'days(date(1970),addYears(date(1970),80))'
Znaki i ich wartości HEX:
$ var="$(echo -n '◻' | od -An -tx1)"; printf '\\x%s' ${var^^}
\xE2\x97\xBB
$ echo -ne "\xE2\x97\xBB"
◻
$ echo -ne "\xE2\x97\xBC"
◼
$ echo -n $'\xE2\x97\xBB'|xxd
00000000: e297 bb ...
$ echo -n $'\xE2\x97\xBB'|hexdump
00000000 e2 97 bb
00000003
Recommended content
- https://en.wikipedia.org/wiki/Unix_time
- https://en.wikipedia.org/wiki/Epoch_(computing)
- http://qalculate.github.io/
Refs
Era Uniksa rozpoczęła w czwartek, 1 stycznia 1970 r. o godz. 00:00:00 UT. ↩︎