, 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}
gregorianske /julian datoer
Previous:kodeord komponent
Next Page:adaptive huffman kodning