(* ** ** Copyright © 1996-2000 Dipl.-Inform. Kai Hofmann. All rights reserved. ** Registered Amiga shared library! ** ** $VER: DateL.def 33.320 (02.01.00) ** ** Experimental version, please report bugs/improvements! *) DEFINITION MODULE DateL {"date.library",33}; FROM SYSTEM IMPORT ADDRESS; IMPORT d:DateD,R; VAR dateVersion : INTEGER; dateBase : d.DateBasePtr; CONST dateMinVersion = 33; dateMinRevision = 320; dateName = "date.library"; PROCEDURE TimeToJD(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : REAL; CODE -294; PROCEDURE JDToTime(jd{R.D0} : REAL; VAR rhour{R.A0}, rmin{R.A1}, rsec{R.A2} : SHORTCARD); CODE -300; PROCEDURE TimeZoneFactor(degree{R.D0} : SHORTINT) : SHORTINT; CODE -318; PROCEDURE LMT(secs {R.D0} : LONGCARD; meridiandegree{R.D1} : REAL; posdegree {R.D2} : REAL) : LONGINT; CODE -324; PROCEDURE TimeToSec(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : LONGCARD; CODE -330; PROCEDURE SecToTime(secs{R.D0} : LONGCARD; VAR hour{R.A0}, min{R.A1}, sec{R.A2} : SHORTCARD); CODE -336; PROCEDURE Compare2Times(hour1{R.D0}, min1{R.D1}, sec1{R.D2}, hour2{R.D3}, min2{R.D4}, sec2{R.D5} : SHORTCARD) : SHORTINT; CODE -426; PROCEDURE ValidTime(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : BOOLEAN; CODE -438; PROCEDURE TimeDiff(hour1{R.D0}, min1{R.D1}, sec1{R.D2}, hour2{R.D3}, min2{R.D4}, sec2{R.D5} : SHORTCARD) : LONGINT; CODE -468; PROCEDURE DiffTime(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD; diffsecs{R.D3} : LONGINT; VAR rhour{R.A0}, rmin{R.A1}, rsec{R.A2} : SHORTCARD); CODE -474; PROCEDURE FormatTime(fmt{R.A0} : ADDRESS; ChangeDay{R.D0} : d.ChangeDay; ChangeHour{R.D1} : SHORTCARD; DST{R.D2} : BOOLEAN; hour{R.D3}, min{R.D4}, sec{R.D5} : SHORTCARD; zonemin{R.D6} : SHORTINT; tstr{R.A1} : ADDRESS); CODE -498; PROCEDURE ParseTime(fmt{R.D0}, tstr{R.D1} : ADDRESS; ChangeDay{R.D2} : d.ChangeDay; ChangeHour{R.D3} : SHORTCARD; VAR DST{R.D4} : BOOLEAN; hour{R.A0}, min{R.A1}, sec{R.A2} : SHORTCARD; VAR zonemin{R.A3} : SHORTINT; pfmt{R.D5} : ADDRESS) : SHORTINT; CODE -504; PROCEDURE TimeToNum(hour{R.D0}, min{R.D1}, sec{R.D2} : SHORTCARD) : LONGCARD; CODE -594; PROCEDURE NumToTime(num{R.D0}: LONGCARD; rhour{R.A0}, rmin{R.A1}, rsec{R.A2} : SHORTCARD); CODE -600; PROCEDURE JulianLeapYear (year{R.D0} : LONGINT) : BOOLEAN; CODE -30; PROCEDURE GregorianLeapYear(year{R.D0} : LONGINT) : BOOLEAN; CODE -36; PROCEDURE HeisLeapYear (year{R.D0} : LONGINT) : BOOLEAN; CODE -42; PROCEDURE JulianMonthDays (month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -48; PROCEDURE GregorianMonthDays(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -54; PROCEDURE HeisMonthDays (month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -60; PROCEDURE JulianYearDays (year{R.D0} : LONGINT) : CARDINAL; CODE -66; PROCEDURE GregorianYearDays(year{R.D0} : LONGINT) : CARDINAL; CODE -72; PROCEDURE HeisYearDays (year{R.D0} : LONGINT) : CARDINAL; CODE -78; PROCEDURE Compare2Dates(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : SHORTINT; CODE -420; PROCEDURE JulianDayDiff (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : LONGINT; CODE -120; PROCEDURE GregorianDayDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : LONGINT; CODE -126; PROCEDURE HeisDayDiff (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT) : LONGINT; CODE -132; PROCEDURE JulianWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : d.Weekdays; CODE -138; PROCEDURE GregorianWeekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : d.Weekdays; CODE -144; PROCEDURE HeisWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : d.Weekdays; CODE -150; PROCEDURE JulianDaysBeforeWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -156; PROCEDURE GregorianDaysBeforeWeekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -162; PROCEDURE HeisDaysBeforeWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -168; PROCEDURE JulianDaysAfterWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -174; PROCEDURE GregorianDaysAfterWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -180; PROCEDURE HeisDaysAfterWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays) : SHORTCARD; CODE -186; PROCEDURE JulianDiffDate (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -192; PROCEDURE GregorianDiffDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -198; PROCEDURE HeisDiffDate (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -204; PROCEDURE JYearToScaliger(year{R.D0} : LONGINT) : CARDINAL; CODE -210; PROCEDURE GYearToScaliger(year{R.D0} : LONGINT) : CARDINAL; CODE -216; PROCEDURE HYearToScaliger(year{R.D0} : LONGINT) : CARDINAL; CODE -222; PROCEDURE ScaligerYearToJ(syear{R.D0} : CARDINAL) : LONGINT; CODE -228; PROCEDURE ScaligerYearToG(syear{R.D0} : CARDINAL) : LONGINT; CODE -234; PROCEDURE ScaligerYearToH(syear{R.D0} : CARDINAL) : LONGINT; CODE -240; PROCEDURE JSYearToJD(syear{R.D0} : CARDINAL) : LONGCARD; CODE -246; PROCEDURE GSYearToJD(syear{R.D0} : CARDINAL) : LONGCARD; CODE -252; PROCEDURE HSYearToJD(syear{R.D0} : CARDINAL) : LONGCARD; CODE -258; PROCEDURE JDtoMJD(jd{R.D0} : LONGCARD) : LONGCARD; CODE -264; PROCEDURE MJDtoJD(mjd{R.D0} : LONGCARD) : LONGCARD; CODE -270; PROCEDURE JulianToJD (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGCARD; CODE -276; PROCEDURE GregorianToJD(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGCARD; CODE -282; PROCEDURE HeisToJD (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGCARD; CODE -288; PROCEDURE GregorianMoonAge(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -306; PROCEDURE JulianEaster (year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD); CODE -402; PROCEDURE GregorianEaster(year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD); CODE -312; PROCEDURE HeisEaster (year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD); CODE -408; PROCEDURE JulianWeek (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -342; PROCEDURE GregorianWeek(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -348; PROCEDURE HeisWeek (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : SHORTCARD; CODE -354; PROCEDURE WeekdayText (wday{R.D0} : d.Weekdays; wtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -360; PROCEDURE WeekdayShortText(wday{R.D0} : d.Weekdays; wtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -372; PROCEDURE MonthText (month{R.D0} : SHORTCARD; mtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -366; PROCEDURE MonthShortText(month{R.D0} : SHORTCARD; mtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages) : SHORTCARD; CODE -378; PROCEDURE DateText(text{R.D0} : d.DateTexts; mtext{R.A0} : ADDRESS; lang{R.D1} : d.Languages; wc{R.D2} : d.WordClass); CODE -432; PROCEDURE JDToJulian (jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -384; PROCEDURE JDToGregorian(jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -390; PROCEDURE JDToHeis (jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -396; PROCEDURE GregorianMoonPhase(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; phase{R.D3} : d.MoonPhases) : LONGCARD; CODE -414; PROCEDURE ValidJulianDate (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : BOOLEAN; CODE -444; PROCEDURE ValidGregorianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : BOOLEAN; CODE -450; PROCEDURE ValidHeisDate (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : BOOLEAN; CODE -456; PROCEDURE SetCountry(country{R.D0} : d.Countries); CODE -462; PROCEDURE SetFirstWeekday(weekday{R.D0} : d.Weekdays); CODE -480; PROCEDURE SupplementCentury(year{R.D0} : SHORTCARD; actualyear{R.D1} : LONGINT) : LONGINT; CODE -486; PROCEDURE JulianLastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -510; PROCEDURE GregorianLastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -516; PROCEDURE HeisLastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT) : SHORTCARD; CODE -522; PROCEDURE NextValidJulianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -528; PROCEDURE NextValidGregorianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -534; PROCEDURE NextValidHeisDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -540; PROCEDURE PreviousValidJulianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -546; PROCEDURE PreviousValidGregorianDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -552; PROCEDURE PreviousValidHeisDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -558; PROCEDURE FormatDate(fmt{R.A0} : ADDRESS; day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; lang{R.D3} : d.Languages; tstr{R.A1} : ADDRESS; calendar{R.D4} : d.Calendars); CODE -564; PROCEDURE ParseDate(fmt{R.D0}, dstr{R.D1} : ADDRESS; lang{R.D2} : d.Languages; calendar{R.D3} : d.Calendars; actualjd{R.D4} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT; pfmt{R.A3} : ADDRESS; VAR plang{R.D5} : d.Languages;) : SHORTINT; CODE -570; PROCEDURE JulianWWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -576; PROCEDURE GregorianWWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -582; PROCEDURE HeisWWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -588; PROCEDURE DateToNum(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT) : LONGINT; CODE -606; PROCEDURE NumToDate(num{R.D0} : LONGINT; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT); CODE -612; PROCEDURE JulianDiffDateRange (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -618; PROCEDURE GregorianDiffDateRange(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -624; PROCEDURE HeisDiffDateRange (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT); CODE -630; PROCEDURE JulianRangeDiff (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT); CODE -636; PROCEDURE GregorianRangeDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT); CODE -642; PROCEDURE HeisRangeDiff (day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT); CODE -648; PROCEDURE LeapYear(year{R.D0} : LONGINT; calendar{R.D1} : d.Calendars) : BOOLEAN; CODE -666; PROCEDURE MonthDays(month{R.D0} : SHORTCARD; year{R.D1; calendar{R.D2} : d.Calendars} : LONGINT) : SHORTCARD; CODE -672; PROCEDURE YearDays(year{R.D0} : LONGINT; calendar{R.D1} : d.Calendars) : CARDINAL; CODE -684; PROCEDURE DayDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; calendar{R.D6} : d.Calendars) : LONGINT; CODE -690; PROCEDURE Weekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : d.Weekdays; CODE -696; PROCEDURE DaysBeforeWeekday(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays; calendar{R.D4} : d.Calendars) : SHORTCARD; CODE -702; PROCEDURE DaysAfterWeekday (day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; weekday{R.D3} : d.Weekdays; calendar{R.D4} : d.Calendars) : SHORTCARD; CODE -708; PROCEDURE YearToScaliger(year{R.D0} : LONGINT; calendar{R.D1} : d.Calendars) : CARDINAL; CODE -714; PROCEDURE ScaligerYearToYear(syear{R.D0} : CARDINAL; calendar{R.D1} : d.Calendars) : LONGINT; CODE -720; PROCEDURE SYearToJD(syear{R.D0} : CARDINAL; calendar{R.D1} : d.Calendars) : LONGCARD; CODE -726; PROCEDURE DateToJD(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : LONGCARD; CODE -732; PROCEDURE Easter(year{R.D0} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; calendar{R.D1} : d.Calendars); CODE -738; PROCEDURE Week(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : SHORTCARD; CODE -744; PROCEDURE JDToDate(jd{R.D0} : LONGCARD; VAR day{R.A0}, month{R.A1} : SHORTCARD; VAR year{R.A2} : LONGINT; calendar{R.D1} : d.Calendars); CODE -750; PROCEDURE ValidDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; calendar{R.D3} : d.Calendars) : BOOLEAN; CODE -756; PROCEDURE LastMonthDay(month{R.D0} : SHORTCARD; year{R.D1} : LONGINT; calendar{R.D2} : d.Calendars) : SHORTCARD; CODE -678; PROCEDURE NextValidDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D3} : d.Calendars); CODE -762; PROCEDURE PreviousValidDate(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D3} : d.Calendars); CODE -768; PROCEDURE WWtoDM(weekday{R.D0} : d.Weekdays; week{R.D1} : SHORTCARD; year{R.D2} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D3} : d.Calendars); CODE -774; PROCEDURE DiffDateRange(day{R.D0}, month{R.D1} : SHORTCARD; year{R.D2} : LONGINT; days{R.D3}, months{R.D4}, years{R.D5} : LONGINT; VAR dday{R.A0}, dmonth{R.A1} : SHORTCARD; VAR dyear{R.A2} : LONGINT; calendar{R.D6} : d.Calendars); CODE -780; PROCEDURE RangeDiff(day1{R.D0}, month1{R.D1} : SHORTCARD; year1{R.D2} : LONGINT; day2{R.D3}, month2{R.D4} : SHORTCARD; year2{R.D5} : LONGINT; VAR days{R.A0}, months{R.A0} : SHORTINT; VAR years{R.A2} : LONGINT; calendar{R.D6} : d.Calendars); CODE -786; PROCEDURE LocalToGMT(ljd{R.D0}, lsecs{R.D1} : LONGCARD; DST{R.D2} : BOOLEAN; zonemin{R.D3} : SHORTINT; VAR gjd{R.A0}, gsecs{R.A1} : LONGCARD); CODE -654; PROCEDURE GMTToLocal(gjd{R.D0}, gsecs{R.D1} : LONGCARD; zonemin{R.D2} : SHORTINT; ChangePrevDay{R.D3}, ChangeDay{R.D4}, ChangeNextDay{R.D5} : d.ChangeDay; ChangeHour{R.D6} : SHORTCARD; VAR ljd{R.A0}, lsecs{R.A1} : LONGCARD; VAR DST{R.A2} : BOOLEAN); CODE -660; END DateL.lib33