'===========================================================================
' Subject: Find the days of the week          Date: 09-15-02 (  :  )       
'  Author: David Williams                     Code: QB,Qbasic,PDS          
'  Origin: david.williams@ablelink.org      Packet: DATETIME.ABC
'===========================================================================
' WEEKDAYS.BAS 
  
' Function "DayName$" finds day of week for any Gregorian date. 
' Rest of program is demonstration. 
  
' david.williams@ablelink.org 
  
DECLARE FUNCTION DayName$ (Year%, Month%, Day%) 
DEFINT A-Z 
  
DO 
  
  INPUT "Date (YYYY,MM,DD)"; Y, M, D 
  PRINT "This date is a "; DayName$(Y, M, D) 
  
  PRINT "Another? (y/n) "; 
  DO 
    K$ = UCASE$(INKEY$) 
  LOOP UNTIL K$ = "Y" OR K$ = "N" 
  PRINT K$ 
  
LOOP UNTIL K$ = "N" 
  
END 
  
FUNCTION DayName$ (Y, M, D) 
  IF M > 2 THEN 
    P = M - 3 
    Q = Y 
  ELSE 
    P = M + 9 
    Q = Y - 1 
  END IF 
  Z = (D + Q + Q \ 4 - Q \ 100 + Q \ 400 + CINT(2.6 * P)) MOD 7 
  N$ = "Tues  WednesThurs Fri   Satur Sun   Mon" 
  DayName$ = RTRIM$(MID$(N$, 6 * Z + 1, 6)) + "day" 
END FUNCTION 
