There's probably a graphical application for calendrical calculations,
but I do mine using a bash script I'm attaching. Hope attachments are
allowed. If not, and anyone's interested in the "days-between" script,
let me know, and I'll come up with another way to share it.
With this script in hand one can write oneself simple shell scripts to
do stuff like the following:
<cut here>
#!/bin/bash
echo "We pray there are no more than $(/usr/local/bin/days-between `date
+%m/%d/%Y ` 01/20/2021) days of Trump before us,"
echo "noting there are but $(/usr/local/bin/days-between `date +%m/%d/%Y `
11/03/2020) days to the election."
<end code>
Note: above code is three lines.
Best,
Janina
'Donna Goodin' via MacVisionaries writes:
> Hi all,
>
> I’m looking for an app that will count down the days to an event. There are
> lots of them in the app store. Does anyone know of one that is accessible?
> TIA,
> Donna
>
>
> Sent from my iPad
>
> --
> The following information is important for all members of the Mac Visionaries
> list.
>
> If you have any questions or concerns about the running of this list, or if
> you feel that a member's post is inappropriate, please contact the owners or
> moderators directly rather than posting on the list itself.
>
> Your Mac Visionaries list moderator is Mark Taylor. You can reach mark at:
> [email protected] and your owner is Cara Quinn - you can reach Cara at
> [email protected]
>
> The archives for this list can be searched at:
> http://www.mail-archive.com/[email protected]/
> ---
> You received this message because you are subscribed to the Google Groups
> "MacVisionaries" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/macvisionaries/D3D76086-AABB-40B5-8A8D-CE11D010277A%40me.com.
--
Janina Sajka
https://linkedin.com/in/jsajka
Linux Foundation Fellow
Executive Chair, Accessibility Workgroup: http://a11y.org
The World Wide Web Consortium (W3C), Web Accessibility Initiative (WAI)
Co-Chair, Accessible Platform Architectures http://www.w3.org/wai/apa
--
The following information is important for all members of the Mac Visionaries
list.
If you have any questions or concerns about the running of this list, or if you
feel that a member's post is inappropriate, please contact the owners or
moderators directly rather than posting on the list itself.
Your Mac Visionaries list moderator is Mark Taylor. You can reach mark at:
[email protected] and your owner is Cara Quinn - you can reach Cara at
[email protected]
The archives for this list can be searched at:
http://www.mail-archive.com/[email protected]/
---
You received this message because you are subscribed to the Google Groups
"MacVisionaries" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/macvisionaries/20200907085622.GR2181%40rednote.net.
#!/bin/bash
# days-between.sh: Number of days between two dates.
# Usage: ./days-between.sh [M]M/[D]D/YYYY [M]M/[D]D/YYYY
#
# Note: Script modified to account for changes in Bash 2.05b
#+ that closed the loophole permitting large negative
#+ integer return values.
ARGS=2 # Two command line parameters expected.
E_PARAM_ERR=65 # Param error.
REFYR=1600 # Reference year.
CENTURY=100
DIY=365
ADJ_DIY=367 # Adjusted for leap year + fraction.
MIY=12
DIM=31
LEAPCYCLE=4
MAXRETVAL=255 # Largest permissable
#+ positive return value from a function.
diff= # Declare global variable for date difference.
value= # Declare global variable for absolute value.
day= # Declare globals for day, month, year.
month=
year=
Param_Error () # Command line parameters wrong.
{
echo "Usage: `basename $0` [M]M/[D]D/YYYY [M]M/[D]D/YYYY"
echo " (date must be after 1/3/1600)"
exit $E_PARAM_ERR
}
Parse_Date () # Parse date from command line params.
{
month=${1%%/**}
dm=${1%/**} # Day and month.
day=${dm#*/}
let "year = `basename $1`" # Not a filename, but works just the same.
}
check_date () # Checks for invalid date(s) passed.
{
[ "$day" -gt "$DIM" ] || [ "$month" -gt "$MIY" ] || [ "$year" -lt "$REFYR" ]
&& Param_Error
# Exit script on bad value(s).
# Uses "or-list / and-list".
#
# Exercise: Implement more rigorous date checking.
}
strip_leading_zero () # Better to strip possible leading zero(s)
{ #+ from day and/or month
return ${1#0} #+ since otherwise Bash will interpret them
} #+ as octal values (POSIX.2, sect 2.9.2.1).
day_index () # Gauss' Formula:
{ # Days from Jan. 3, 1600 to date passed as param.
day=$1
month=$2
year=$3
let "month = $month - 2"
if [ "$month" -le 0 ]
then
let "month += 12"
let "year -= 1"
fi
let "year -= $REFYR"
let "indexyr = $year / $CENTURY"
let "Days = $DIY*$year + $year/$LEAPCYCLE - $indexyr + $indexyr/$LEAPCYCLE +
$ADJ_DIY*$month/$MIY + $day - $DIM"
# For an in-depth explanation of this algorithm, see
#+ http://home.t-online.de/home/berndt.schwerdtfeger/cal.htm
echo $Days
}
calculate_difference () # Difference between to day indices.
{
let "diff = $1 - $2" # Global variable.
}
abs () # Absolute value
{ # Uses global "value" variable.
if [ "$1" -lt 0 ] # If negative
then #+ then
let "value = 0 - $1" #+ change sign,
else #+ else
let "value = $1" #+ leave it alone.
fi
}
if [ $# -ne "$ARGS" ] # Require two command line params.
then
Param_Error
fi
Parse_Date $1
check_date $day $month $year # See if valid date.
strip_leading_zero $day # Remove any leading zeroes
day=$? #+ on day and/or month.
strip_leading_zero $month
month=$?
let "date1 = `day_index $day $month $year`"
Parse_Date $2
check_date $day $month $year
strip_leading_zero $day
day=$?
strip_leading_zero $month
month=$?
date2=$(day_index $day $month $year) # Command substitution.
calculate_difference $date1 $date2
abs $diff # Make sure it's positive.
diff=$value
echo $diff
exit 0
# Compare this script with
#+ the implementation of Gauss' Formula in a C program at:
#+ http://buschencrew.hypermart.net/software/datedif