Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jarun/pdd
:date: Tiny date, time diff calculator with piggybacked timers
https://github.com/jarun/pdd
calculator cli command-line console countdown-timer date-time datetime stopwatch terminal timer
Last synced: 1 day ago
JSON representation
:date: Tiny date, time diff calculator with piggybacked timers
- Host: GitHub
- URL: https://github.com/jarun/pdd
- Owner: jarun
- License: gpl-3.0
- Created: 2017-07-15T16:12:46.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-06-21T15:22:02.000Z (7 months ago)
- Last Synced: 2024-09-30T23:17:17.382Z (4 months ago)
- Topics: calculator, cli, command-line, console, countdown-timer, date-time, datetime, stopwatch, terminal, timer
- Language: Python
- Homepage:
- Size: 192 KB
- Stars: 377
- Watchers: 10
- Forks: 19
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-apps - pdd - Tiny date, time diff calculator. (<a name="calc"></a>Calculators)
- fucking-Awesome-Linux-Software - ![Open-Source Software - Tiny date, time diff calculator. (Applications / Productivity)
- Awesome-Linux-Software - ![Open-Source Software - Tiny date, time diff calculator. (Applications / Productivity)
- awesome-cli-apps-in-a-csv - pdd - Tiny date, time diff calculator. (<a name="calc"></a>Calculators)
README
pdd
`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.
### Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Dependencies](#dependencies)
- [From a package manager](#from-a-package-manager)
- [Release packages](#release-packages)
- [From source](#from-source)
- [Running standalone](#running-standalone)
- [Usage](#usage)
- [cmdline options](#cmdline-options)
- [Operational notes](#operational-notes)
- [Examples](#examples)
- [Copyright](#copyright)### Features
- easy to use, minimal dependencies
- calculate date and time difference
- calculate diff from *today* and *now*
- add, subtract duration (timeslice) to/from date (time)
- countdown timer with command piggybacking
- custom resolution stopwatch
- non-verbose mode for background timers
- show current date, time and timezone
- follows ISO 8601### Installation
#### Dependencies
`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
#### From a package manager
Install `pdd` from your package manager. If the version available is dated try an alternative installation method.
Packaging status (expand)
Unlisted packagers:
● PyPI (pip3 install pdd
)
● Termux (pip3 install pdd
)
#### Release packages
Packages for Arch Linux, CentOS, Debian, Fedora and Ubuntu are available with the [latest stable release](https://github.com/jarun/pdd/releases/latest).
#### From source
If you have git installed, clone this repository. Otherwise download the latest [latest stable release](https://github.com/jarun/pdd/releases/latest) or [development version](https://github.com/jarun/pdd/archive/master.zip) (*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.
#### Running standalone
`pdd` is a standalone utility. From the containing directory, run:
$ chmod +x pdd
$ ./pdd### Usage
#### cmdline options
```
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 nowoptions:
-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.
#### Operational notes
- ISO 8601 format. Month can be specified as month number (e.g. Jan - 1, Dec - 12).
- Time is in 24-hr format.
- The absolute difference is shown. Argument order is ignored.
- The end date is excluded in date difference calculations.
- Hour, minute or second can be omitted. Partial inputs are recognized as `mm:ss` or `ss`.
- The keybind to stop timers is Ctrl-C.### Examples
1. Calculate diff from **today**:
$ pdd 2014 Jan 15
5y 2m 21d
1906d2. Calculate diff from **now**:
$ pdd 24:00:00
15:24:03
55443s$ pdd 0
08:36:22
30982s3. Calculate date diff:
$ pdd -d 1983 jul 3 2014 1 15
30y 6m 12d
11154d4. Calculate time diff:
$ pdd -t 45:50 6:17:33
05:31:43
19903s5. Show current date, time and timezone:
$ pdd
Fri 2019 Apr 5 08:37:25 IST6. Specify time with roll-over:
$ pdd -t 5:80:75 6:17:33
00:03:42
222s7. 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 298. 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
89260s9. Add a duration (3 years, 2 months, 1 day) to **today**:
$ pdd 3 2 1 --add
Mon 2022 Jun 0610. Add a timeslice (1 hour 2 minutes 3 seconds) to **now**:
$ pdd 1:2:3 --add
09:41:26
34886s11. Subtract a duration (1 day) from 1 Mar, 2000:
$ pdd -d 2000 Mar 01 0 0 1 --sub
Tue 2000 Feb 2912. Subtract a timeslice (1 sec) from midnight:
$ pdd -t 00:00:00 0:0:1 --sub
1 day(s) earlier, 23:59:59
-1s13. Subtract a duration (3 years, 2 months, 1 day) from **today**:
$ pdd 3 2 1 --sub
Thu 2016 Feb 0414. Subtract a timeslice (1 hour 2 minutes 3 seconds) from **now**:
$ pdd 1:2:3 --sub
07:40:02
27602s15. Show the day of the week on 15 Jan 2014:
$ pdd --day 2014 Jan 15
Wed16. 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.17. 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
Copyright © 2017 [Arun Prakash Jana](https://github.com/jarun)