home *** CD-ROM | disk | FTP | other *** search
- Function LeapYear(Year:Integer):Byte;
- Begin
- If (((Year Mod 400)=0) Or (((Year Mod 4)=0) And ((Year Mod 100)<>0))) Then
- LeapYear:=1 Else LeapYear:=0;
- End;
-
- Function DayOfYear(Year, Month, Day : Integer) : Integer;
- Begin
- DayOfYear:=Trunc(Int(3055.0*(Month+2.0)/100.0)
- -Int((Month+10.0)/13.0)*2-91
- +(LeapYear(Year)*Int((Month+10.0)/13.0)
- +Day));
- End;
-
- Function RealMod(x:Real;y:Integer):Integer; {-------------------------}
- Begin {Turbo MOD operator only }
- RealMod:=Trunc(x-Int(x/y)*y+0.5); {works with Integer values}
- End; { This is same operation }
- {For real argument. }
- {-------------------------}
-
- Function RealDay(Year,Month,Day : Integer) : Real;
- Begin
- RealDay:=DayOfYear(Year,Month,Day)
- +((Year-1)*365.0)
- +Int((Year-1)/4)
- -Int((Year-1)/100)
- +Int((Year-1)/400);
- End;
-
- Function DayOfWeek(Year,Month,Day : Integer) : Integer;
- Begin {0 is Sunday}
- DayOfWeek:=RealMod(RealDay(Year,Month,Day),7)
- End;
-
- Procedure GetMonthDay(Year, DayOfYear : Integer; Var Month,Day : Integer);
- Var
- Temp : Integer;
- Leap : Byte;
- Begin
- Leap:=LeapYear(Year);
- Temp:=Trunc(DayOfYear+Int((305+DayOfYear-Leap)/365)*(2-Leap));
- Month:=Trunc(Int(((Temp+91.0)*100.0)/3055.0)-2.0);
- Day:=Trunc(Temp+30.0-Int((Month*3056.0)/100.0));
- End;