tables in the shell
Script started on Wed Apr 30 12:46:53 1997
sh-2.00$ cat dateconv
#! /usr/local/bin/bash
# @(#) dateconv Month day year
# @(#) converts a date as from the ls -l output to the sequence number in the
# @(#) year - Jan 1 is 1, Jan 2 is 2, etc.
# Table shows number of days preceding first day of month.
day=`echo 'Jan 0
Feb 31
Mar 59
Apr 90
May 120
Jun 151
Jul 181
Aug 212
Sep 243
Oct 273
Nov 304
Dec 334' | grep $1 | sed 's/^.* //' `
# Add in day of month to get sequence number for non-leap years.
day=$(( day + $2 ))
# Determine if year is leap year. If it is, add 1 for dates after Feb.
leap=0
if [ $(($3 % 4 )) -eq 0 ]
then
leap=1
fi
if [ $(( $3 % 100 )) -eq 0 ]
then
leap=0
fi
if [ $(( $3 % 400 )) -eq 0 ]
then
leap=1
fi
if [ "$leap" -eq 1 -a "$1" != Jan -a "$1" != Feb ]
then
day=$(( $day + 1 ))
fi
echo $day
sh-2.00$ bash -x dateconv Jun 6 1944
++ echo 'Jan 0
Feb 31
Mar 59
Apr 90
May 120
Jun 151
Jul 181
Aug 212
Sep 243
Oct 273
Nov 304
Dec 334'
++ grep Jun
++ sed 's/^.* //'
+ day=151
+ day=157
+ leap=0
+ '[' 0 -eq 0 ']'
+ leap=1
+ '[' 44 -eq 0 ']'
+ '[' 344 -eq 0 ']'
+ '[' 1 -eq 1 -a Jun '!=' Jan -a Jun '!=' Feb ']'
+ day=158
+ echo 158
158
exit
script done on Wed Apr 30 12:48:17 1997