Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations wOOdy-Soft on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Playing with dates

Status
Not open for further replies.

dUbbsNIX

MIS
Jul 10, 2003
70
GB
I have a date in the format YYMMDD, I wish to know such things as what day of the week is it, or what is it in Julian format, are you aware of any date conversion routines out there, or do I have to start from scratch ?
 
something like this for Julinan<->Gregorian

Code:
#!/bin/ksh
#-----------------------------------------------------------------------------
# Date manipulation routines - convering to Julian and back
#
# Julian Day Number from calendar date
date2julian() #  day month year
{
  typeset year=$1;  typeset month=$2;  typeset day=$3
  tmpmonth=$((12 * year + month - 3))
  tmpyear=$((tmpmonth / 12))
  print $(( (734 * tmpmonth + 15) / 24 -  2 * tmpyear +     tmpyear/4 - tmpyear/100 + tmpyear/400 + day + 1721119 ))
}

# Calendar date from Julian Day Number
julian2date() # julianday
{
  #set -x
  typeset tmpday=$(($1 - 1721119))
  typeset centuries=$(( (4 * tmpday - 1) / 146097))
  tmpday=$((tmpday + centuries - centuries/4))
  typeset year=$(( (4 * tmpday - 1) / 1461))
  tmpday=$((tmpday - (1461 * year) / 4))
  typeset month=$(( (10 * tmpday - 5) / 306))
  day=$((tmpday - (306 * month + 5) / 10))
  month=$((month + 2))
  year=$((year + month/12))
  month=$((month % 12 + 1))
  printf "%s %02d %02d" $year $month $day
}

# Day of week, Monday=1...Sunday=7
dow() # year month day
{
  print $(( $(date2julian $1 $2 $3) % 7 + 1))
}

vlad
+----------------------------+
| #include<disclaimer.h> |
+----------------------------+
 

Thanks for this vlad. I'll add some error checking to your script and probabley use it. As for doing a man on date(1), I don't really have any comment.

thanks again,

Dubbs.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top