pdd - Tool to find Date and Time Difference in Linux Command Line

pdd calculate date time differenceIn some occasions where you want to check by how many years someone older than you, how old you are (in days, years or months), the countdown to an event or the next flash sale. There is a python-based command line application known as pdd which enables you to calculate date and time differences. Now, there's no go online and search for websites for date and time calculations. In this article, we'll give you more insight into "pdd" tool and teach you how to use it.

Installing pdd

To install pdd in Ubuntu/Debian, we first have to install the dependencies - pdd requires Python 3.5 or newer and the dateutil module.

$ sudo apt-get install python3-dateutil

or using pip3

$ sudo pip3 install dateutil

Now, we'll install pdd from the github repository by entering these commands:

$ git clone https://github.com/jarun/pdd.git
$ cd  pdd/
$ sudo make install

This will install pdd to the /usr/local/bin/. To remove, run:

$ sudo make uninstall

Alternatively, and for other Linux distros, you can install and run pdd from the source directory using these commands:

$ git clone https://github.com/jarun/pdd.git
$ cd  pdd/
# chmod +x pdd
# cp ppd /bin/ppd
$ pdd

Using pdd

pdd seems a bit difficult to use in the start, especially with the white spaces, but it's pretty easy to learn too. Here's the basic syntax with available options.

pdd [arguments] [keywords]

The positional keywords are:

diff/add/subtract from today or now

and optional arguments are:

-h, --help -> show this help message and exit
-d [dd mmm yyyy | d m y] -> calculate date difference
-t [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)

Here are a few operational instructions to note.

  • Times are displayed in 24-hr format.
  • Months can be specified with their respective number (e.g. Jan = 1, Apr = 4, etc.).
  • The absolute difference is shown.
  • There is no particular order of argument.
  • The end date not included in date difference calculations.
  • Hours, minutes or seconds can be omitted. Partial inputs are recognized as mm:ss or ss.

Examples

Here are some examples of pdd. Entering only pdd gives you the current date, time and timezone

$ pdd
 Tue 25 Jul 2017 01:07:12 GMT

Calculate date difference:

$ pdd -d 4 jul 1766 4 7 2017
 251y 0m 0d
 91676d

Calculate time difference:

$ pdd -t 6:45:50 6:17
 06:39:33
 23973s
 
$ pdd -t 45:50 6:17:30
 05:31:40
 19900s

Calculate time difference with roll-over:

$pdd -t 6:59:61 06:00:01
 01:00:00
 3600s

Calculate date difference from today:

$ pdd 1 Jan 2018
 0y 5m 7d
 160d

Calculate time difference from now:

$ pdd 1:17:50
 00:01:00
 60s

Add a duration (in days, months, or years) to an existing date:

$ pdd -d 25 6 2017 7 6 0 --add
 01 Jan 2018

In the above example, we added 7 days, 6 months, and 0 years to 25th June, 2017.

Add a timeslice:

$ pdd -t 00:45:00 1:00:1 --add
 01:45:01
 00:15:01
 901s

In the above example, we added 1 hour, 0 minutes and 1 second to 00:45:00

Add a duration (1 day, 1 month, 1 year) to today:

$ pdd 1 1 1 --add
 26 Aug 2018

Add a timeslice (1 hour, 2 minutes, 3 seconds) to now:

pdd 1:2:3 --add
 02:30:15
 00:26:09
 1569s

Subtract a duration (16 days, 8 months and 16 years) from 25 July, 2017:

$ pdd -d 25 07 2017 16 8 16 --sub
 09 Nov 2000

Subtract a timeslice (30 sec) from noon:

$ pdd -t 12:00:00 30 --sub
 11:59:30

Subtract a duration (3 days, 2 months and 1 year) from today:

$ pdd 3 2 1 --sub
 22 May 2016

Subtract a timeslice (0 seconds, 1 minute, and 30 seconds) from now:

$ pdd 0:1:30 --sub
 01:42:09

In this article, we learned about the pdd utility, how to install it and finally how to use it to calculate date and time. With more practice, you'll eventually be able to use the utility with very little need to resort to other methods for calculating time.

About Eyram Amedzor

Kwaku Eyram has been a working with computers and software for more than 10 years. He's an all-round geek and very fluid with Linux, Android and Windows operating systems. Asides being a tech enthusiast, Kwaku doubles as a tech support personnel and a tech writer. He currently has interest in IoT, web development and information security.

Author Archive Page

Have anything to say?

Your email address will not be published. Required fields are marked *

All comments are subject to moderation.

1 Comment