#!/bin/bash
# File: example/bash/date/date-calculation
# Copyright (c) 2010 Radek Hnilica

#DEBUG:set -x

# Aktuální okamžik jako počet sekund od začátku nové éry.
declare -i sekundy=$(date +%s)
echo sekundy=$sekundy

# Konkrétní datum v sekundách.
declare -i basetime=$(date -d 2010-04-20 +%s)
echo basetime=$basetime

# Mezi oběma okamžiky uplynulo
echo uplynulo $((sekundy - basetime))

# Kolik to bylo minut?
echo v minutách $(((sekundy - basetime) / 60))

# A kolik hodin?
echo v hodinách $(((sekundy - basetime) / 3600))

# A naposled v celých dnech
echo ve dnech $(((sekundy - basetime) / 86400))


# Zkouška práce s čase v sekundách.
echo $(date +%F\ %T); sleep 1
ted=$(date +%s); sleep 1
echo $(date +%F\ %T); sleep 1
echo $(date -d@$ted +%F\ %T)

# Takový složitější výpočet.

# Najít čas který je mezi přítomností a daným okamžikem v minulosti
# nazvaným basetime.  Hledáme čas který je v polovině tohoto
# intervalu, nebo v jiné části dané zlomkem.

#set -x
declare -ir basetime=$(date -d 2010-04-20 +%s)
declare -ir uplynulo=$(($(date +%s) - basetime))
declare -ir casovybod=$((basetime + uplynulo / 2))
echo "Hledaný datum/čas $(date -d@$casovybod +%F\ %T)."