Gregorianske /Julian dates

Konverter frem og tilbake mellom gregorianske og Julian datoer
bidragsyter. GREG Vigneault product: {DF > Jeg trenger en nøyaktig metode for å konvertere frem og tilbake mellom > Gregorianske og Julian datoer
hvis du mener det Sanne Julian dagen, som brukes i astronomi ...}
Program JulianDate.; {Gregorianske dato til Julian dag}
Bruker Crt; {Turbo /Hurtig Pascal} Var måned, år, greg: Integer; Day, JulianDay: Fast; Leapyear, DateOkay: Boolean; begynne ClrScr; WriteLn ('Julian Datoer v0.1 Dec.20.91 G.Vigneault'); WriteLn ('[Enter gregorianske kalender verdier]'); WriteLn; {E.Kr. år inngikk normalt, f.Kr. år som negativ} Skriv ('Skriv Year (nnnn For e.Kr., -nnnn For f.Kr.):'); ReadLn (år); Leapyear: = False; {Anta ikke} if ((år MOD 4) = 0) {mulig Leapyear? } Deretter if ((år MOD 100) < > 0) {Leapyear om ikke tallet} eller ((år MOD 100) = 0) og ((år MOD 400) = 0) så Leapyear: = true; Gjenta Write ('Skriv Måned (1..12):'); ReadLn (måned); Inntil (måned < 13) og (måned > 0);
WriteLn ('Julian Days begynne på Greenwich Mean noon (12:00 UT)'); DateOkay: = False; Gjenta Write ('Skriv Day (1,0 < = Day < 32,0):'); ReadLn (dag); {kan være desimal å inkludere timer} if (Day > = 1,0) og (Day < 32,0) da Sak Month of 1,3,5,7,8,10,12: hvis Day < 32,0 deretter DateOkay: = true; 4,6,9,11: hvis Day < 31.0 deretter DateOkay: = true; 2: if (Day < 29,0) eller (Day < 30,0) og Leapyear deretter DateOkay: = True annet WriteLn ('! Ikke en Leapyear'); ende; {Sak} hvis ikke DateOkay deretter Skriv (# 7); {Pip} Inntil DateOkay, plakater (* her er der vi starter beregningen av Julian Dato *)
hvis Month i [1, 2] deretter begynne DEC (Year); Inc (måned, 12) end; product: {konto For pave Gregor kalender korreksjon, når} {dagen etter Oct.4.1582 var Oct.15.1582}
if (År < 1582) eller (år = 1582) og (måned < 10) eller (år = 1582) og (måned = 10) og (Day < = 15) så greg: = 0 {Oct.15.1582 eller tidligere} else begin {Oct.16.1582 eller senere} greg: = AVKORT (År div 100); greg: = 2 - greg + AVKORT (greg div 4); enden,
if (År > = 0) {circa e.Kr. eller f.Kr. ? } Deretter JulianDay: = int (365,25 * Year) {AD} else JulianDay: = int (365,25 * År - 0,75); {BC}
JulianDay: = JulianDay + int (30,6001 * (måned + 1)) + Day + 1.720.994,5 + greg,
WriteLn; WriteLn ('Equivalent Julian dato er:', JulianDay: 8: 2); WriteLn; slutt. {JulianDate} Anmeldelser



Previous:
Next Page: