Days between two dates

This little script reports back how many days fall between two arbitrary dates, or one date and today. If you put in a date in the future, it tells how many days as a negative;

# How many days 'till Christmas?
HowManyDays 2017-12-25
-115



#!/bin/bash
# SRJ 2017-08-31
date1=$(date --utc --date "${1}" +%s)
Ex=$?
# The line above puts the exit status of the date command
# into the Ex variable, the lines below exit the shell if
# there was an error reported.
if [ ! ${Ex} = 0 ]
then
exit 1
fi

if [ -z "${2}" ]
then
date2=$(date --utc +%s)
else
date2=$(date --utc --date "${2}" +%s)
Ex=$?
# The line above puts the exit status of the date command
# into the Ex variable, the lines below exit the shell if
# there was an error reported.
if [ ! ${Ex} = 0 ]
then
exit 1
fi
fi

diffdays=$(( (date2-date1)/(3600*24) ))

if [ ${diffdays} = 0 ]
then
echo This script requires a valid date in the form yyyy-mm-dd or, for
echo example, HowManyDays 2015-09-23 will report the number of days
echo that have passed between 2015-09-23 and today.
echo
echo If this script is given two dates, it returns the number of days
echo between those two dates, if the second date is earlier than the
echo first, the result will be a negative number.
echo HowManyDays 2015-09-23 2016-02-27 will return 157.
exit 1
fi

echo ${diffdays}