#!/bin/bash

# maildate.sh - calculate date as integer days since 1900
#               Sample input: "Feb 2 1997"

month=$1 # Received as three-character abbreviation
day=$2   # Received as integer 1 through 31
year=$3  # Received as integer 1900 through 2099

# Compute days from 1900 to beginning of year excluding leap days

days1900=$[ ( year - 1900 ) * 365 ]

# Compute approximate leap days since 1900 ; if current year is divisible by
#   four and date is before 1 Mar then this will overstate leap days by one

leapdays=$[ ( year - 1900 ) / 4 ]

# If current year is a leap year then adjust if before 1 Mar

if [ $[ year % 4 ] -eq 0 ] && ( [ $month = "Jan" ] || [ $month = "Feb" ] )
then
  leapdays=$[ leapdays - 1]
fi 

#Compute days into year

case $month in
	'Jan')	daysintoyear=0 ;;
	'Feb')	daysintoyear=31 ;;
	'Mar')	daysintoyear=59 ;;
	'Apr')	daysintoyear=90 ;;
	'May')	daysintoyear=120 ;;
	'Jun')	daysintoyear=151 ;;
	'Jul')	daysintoyear=181 ;;
	'Aug')	daysintoyear=212 ;;
	'Sep')	daysintoyear=243 ;;
	'Oct')	daysintoyear=273 ;;
	'Nov')	daysintoyear=304 ;;
	'Dec')	daysintoyear=334 ;;
esac

dayssince1900=$[ daysintoyear + leapdays + days1900 + day ]

echo $dayssince1900
