!***************************************************************************!
!*                                                                         *!
!*                                 WDAY                                    *!
!*           ROUTINE to get the day of week within a basic program         *!
!*                                                                         *!
!***************************************************************************!

!                            Copyright (C) 1987
!                                    by
!                      Attorney's Title Services, Inc.
!                            All Rights Reserved

!                         Written by: Jim Benard
!
!Edit History:
!1.0  Feb 27, 1987 created. /jlb

               MAP1 JULIAN,            F, 6            !  Julian date
               MAP1 DATE1,             S, 10           !  Starting Date (ccyymmdd)

               MAP1 JYEAR,             F, 6            !  Current Year
               MAP1 JMONTH,            F, 6            !  Current Month
               MAP1 JDAY,              F, 6            !  Current Day
               MAP1 DATE'KEY,          S, 10,"19870227" !  Starting Date (ccyymmdd)

               MAP1 DAY'OF'WEEK( 7 ), S, 9             ! Day of the week.
                       DAY'OF'WEEK( 1 )  = "Monday"
                       DAY'OF'WEEK( 2 )  = "Tuesday"
                       DAY'OF'WEEK( 3 )  = "Wednesday"
                       DAY'OF'WEEK( 4 )  = "Thursday"
                       DAY'OF'WEEK( 5 )  = "Friday"
                       DAY'OF'WEEK( 6 )  = "Saturday"
                       DAY'OF'WEEK( 7 )  = "Sunday"

       !//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\!
       DAY'OF'WEEK:
               !*  Routine to calculate the day of the week using      *!
               !*  ancient calculations and virgin sacrifices.         *!
               !********************************************************!

               DATE1 = STR(DATE'KEY)
               JYEAR  = VAL( DATE1[1,4] )
               JMONTH = VAL( DATE1[5,6] )
               JDAY   = VAL( DATE1[7,8] )

               IF (JMONTH > 2) THEN JMONTH = JMONTH - 2                &
                  ELSE JMONTH = JMONTH + 10                            &
:                       JYEAR = JYEAR - 1

       JULIAN = ( INT(365.25 * JYEAR) + INT(367 * JMONTH/12) + JDAY + 1721089 )
       JULIAN = ( JULIAN - INT((((INT(JYEAR/100) + 1) * 3) /4)))
                       !* Julian date. . .

       JDAY = INT( ((JULIAN/7 - INT(JULIAN/7)) * 7) + 0.5 ) + 1

       PRINT DAY'OF'WEEK(JDAY)

                       END

       !//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\!