:date: Tiny date, time diff calculator with piggybacked timers
pdd
(Python3 Date Diff) is a tiny command line utility to calculate date and time difference. It can also be used as a timer. If no program arguments are specified it shows the current date, time and timezone.
pdd
has been written with only one goal - simplicity. Users shouldn't have to memorize anything.
pdd
requires Python 3.8 (or later) and the dateutil
module.
To install dateutil
on Ubuntu, run:
$ sudo apt-get install python3-dateutil
or, using pip3:
$ sudo pip3 install python-dateutil
Install pdd
from your package manager. If the version available is dated try an alternative installation method.
Packages for Arch Linux, CentOS, Debian, Fedora and Ubuntu are available with the latest stable release.
If you have git installed, clone this repository. Otherwise download the latest latest stable release or development version (risky).
Install to default location (/usr/local
):
$ sudo make install
To remove, run:
$ sudo make uninstall
PREFIX
is supported, in case you want to install to a different location.
pdd
is a standalone utility. From the containing directory, run:
$ chmod +x pdd
$ ./pdd
usage: pdd [-h] [-d yyyy mmm dd [yyyy mmm dd | y m d]]
[-t hh:mm:ss [hh:mm:ss | h:m:s]] [--add] [--sub]
[--day yyyy mmm dd] [-c hh:mm:ss] [-r command] [-s [resolution]] [-q] [-v]
[keywords ...]
Tiny date, time difference calculator with timers.
positional arguments:
keywords diff/add/subtract from today or now
options:
-h, --help show this help message and exit
-d yyyy mmm dd [yyyy mmm dd | y m d], --date yyyy mmm dd [yyyy mmm dd | y m d]
calculate date difference
-t hh:mm:ss [hh:mm:ss | h:m:s], --time hh:mm:ss [hh:mm:ss | h:m:s]
calculate time difference
--add add to date (/today) or time (/now)
--sub subtract from date (/today) or time (/now)
--day yyyy mmm dd show day of the week on a date
-c hh:mm:ss, --timer hh:mm:ss
start a countdown timer
-r command, --run command
run command when countdown timer reaches 0
-s [resolution], --stopwatch [resolution]
start a stopwatch [default resolution: 3 (ms)]
-q, --quiet quiet mode for background timer/stopwatch
-v, --version show program's version number and exit
Completion scripts are available for Bash, Fish and Zsh shells.
mm:ss
or ss
.Calculate diff from today:
$ pdd 2014 Jan 15
5y 2m 21d
1906d
Calculate diff from now:
$ pdd 24:00:00
15:24:03
55443s
$ pdd 0
08:36:22
30982s
Calculate date diff:
$ pdd -d 1983 jul 3 2014 1 15
30y 6m 12d
11154d
Calculate time diff:
$ pdd -t 45:50 6:17:33
05:31:43
19903s
Show current date, time and timezone:
$ pdd
Fri 2019 Apr 5 08:37:25 IST
Specify time with roll-over:
$ pdd -t 5:80:75 6:17:33
00:03:42
222s
Add a duration (3 years, 2 months, 1 day) to 28 Feb, 2000:
$ pdd -d 2000 FEB 28 3 2 1 --add
Tue 2003 Apr 29
Add a timeslice (1 hour 2 mins 3 secs) to 23:45:37:
$ pdd -t 23:45:37 1:2:3 --add
1 day(s) later, 00:47:40
89260s
Add a duration (3 years, 2 months, 1 day) to today:
$ pdd 3 2 1 --add
Mon 2022 Jun 06
Add a timeslice (1 hour 2 minutes 3 seconds) to now:
$ pdd 1:2:3 --add
09:41:26
34886s
Subtract a duration (1 day) from 1 Mar, 2000:
$ pdd -d 2000 Mar 01 0 0 1 --sub
Tue 2000 Feb 29
Subtract a timeslice (1 sec) from midnight:
$ pdd -t 00:00:00 0:0:1 --sub
1 day(s) earlier, 23:59:59
-1s
Subtract a duration (3 years, 2 months, 1 day) from today:
$ pdd 3 2 1 --sub
Thu 2016 Feb 04
Subtract a timeslice (1 hour 2 minutes 3 seconds) from now:
$ pdd 1:2:3 --sub
07:40:02
27602s
Show the day of the week on 15 Jan 2014:
$ pdd --day 2014 Jan 15
Wed
Start a countdown timer or stopwatch in quiet mode in the background:
$ pdd -qs &
$ pdd -qc 3:0:0 &
To see the final counter run fg
and press Ctrl-C.
Run a command when countdown timer reaches 0
$ pdd -c 00:00:5 -r 'ps -aux'
$ pdd -c 00:00:5 -r 'notify-send pdd "timer expired"'
Copyright © 2017 Arun Prakash Jana