gregorianske /julian datoer

, omdanne sig frem og tilbage mellem gregorianske og julian datoer, bidragyder: greg vigneault (df > jeg har brug for en nøjagtig metode til at omdanne sig frem og tilbage mellem    > gregorianske og julian datoer.   hvis du mener ægte julian dag, som anvendes i astronomi.,, program juliandate; (gregorianske dato, julian dag} anvendes crt. {turbo /hurtigt pascal}, var måned, år, greg: heltal,          dag, julianday: ægte;,          leapyear, dateokay: boolean, begynder,      clrscr;,      writeln (', julian. datoer v0.1 dec.20.91 g.vigneault '),      writeln (' [angiv det gregorianske kalender værdier] ');,      writeln;,      {a.d. år opføres normalt f.kr. år som negative},      skrive (' i år (nnnn for a.d., - nnnn for f.): '),      readln (år),      leapyear: = falske {påtage sig ikke},      hvis ((år mod 4) = 0) (mulige leapyear?},         then if ((Year MOD 100)<>0) { LeapYear if not century },              or ((Year MOD 100)=0) and ((Year MOD 400)=0),              then LeapYear := True;,     Repeat,         Write( 'Enter Month (1..12): ' );,         ReadLn( Month );,     Until ( Month < 13 ) and ( Month > 0 );,     WriteLn('Julian Days begin at Greenwich mean noon (12:00 UT)');,     DateOkay := False;,     Repeat,     Write( 'Enter Day (1.0 <= Day < 32.0): ' );,     ReadLn( Day ); {may be decimal to include hours},     if ( Day >= 1.0 ) and ( Day < 32.0 ),         then Case Month of,                 1,3,5,7,8,10,12: hvis dag < 32 så dateokay: = sandt,                  4,6,9,11: hvis dag < 31, 0 - dateokay: = sandt,                  2: hvis (dag < 29), eller,                                       (dag < 30) og leapyear,                                    så dateokay: = sandt,                                    andre writeln (' ikke en leapyear!'),                 ; (sag),         , hvis ikke dateokay så skrive (# 7); (bip),          indtil dateokay;,          (* her er, hvor vi starter beregning af julian dato *),          hvis måned [1, 2],          så begynde,                          dec (år),                          inc (måned 12),                 ;,          (konto for pave gregor ' s kalender korrektion, når den          {dagen efter oct.4.1582 var oct.15.1582},          hvis (år < 1582), eller             (år = 1582) og (måned < 10), eller             (år = 1582) og (måned = 10) og (dag < = 15),          så greg: = 0 (oct.15.1582 eller tidligere),          ellers begynde {oct.16.1582 eller senere),                          greg: = trunc (år div. 100),                          greg: = 2 - greg. greg trunc (div. 4.),                 ;,          hvis (år > = 0) (ca. eller f. kr.?},                  så julianday: = int (365.25 * år) (ad),                  andre julianday: = int (365.25 * år - 75); (f),          julianday: = julianday,                     + int (30.6001 * (måned + 1)),                     + dag,                     + 1720994.5,                     + greg,          writeln;,          writeln (' tilsvarende julian dato: ', julianday: 8: 2),          writeln;, slut.(juliandate}



Previous:
Next Page: