#include <stdio.h> int decaMois[12] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; main(int argc, char** argv) { long JJ; /* Jour Julien doit etre entier long */ int jour = atoi(argv[1]); int mois = atoi(argv[2]); int an = atoi(argv[3]); /* permiere partie pour le 1 janvier julien */ JJ = ((4712 + an) * 36525 + 75); /* les calculs se font * 100 */ JJ /= 100; /* pour simplifier la partie entiere */ printf ("%d ", JJ); /* seconde partie pour une date julienne quelconque */ JJ += jour-1; /* JJ pour le 2/1/-4712 = 1*/ JJ += decaMois[mois-1]; /* attention aux indices du tableau janv = 0 */ if ((mois > 2) && !(an % 4)) JJ++; /* si bissextile julien */ printf (" %d ", JJ); /* troisieme partie pour une date gregorienne quelconque */ if ((an > 1582) || ((an == 1582) && (mois > 10)) || ((an == 1582) && (mois == 10) && (jour > 14))) { /* si date gregorienne * / JJ -= 10; /* decalage fixe */ if (mois <= 2) an -= 1; /* decalage valable unique si mois > 2 */ JJ -= (((an / 100) - 16) * 75 + 99) / 100; /* nb millemaire pas bissex. */ } printf (" %d\n", JJ); }