#include <stdio.h>
#include <math.h>
/*Define Function JD for later use in the program */
double JD(double date);
main()
{
int valid=1;
double J_date;
printf("======= JULIAN DATE CONVERTER =========\n");
/* gets input from user */
printf(" Enter the Julian date number, number must be bigger than 2299160)\n");
scanf(" %lf ", &J_date);
/* Check to see if proper date was entered */
while( valid != 0 )
{
If(J_date > 2299160)
{
valid=0;
}
else
{
printf("Wrong number inserted please enter a number bigger than 2299160\n");
scanf(" %lf ", &J_date);
}
}
/* Calls the function JD */
double JD(J_date);
}
/*
A new function named JD,
Does the convertion from Julian date
To Gregorian Date
*/
double JD(double date)
{
int timeofday;
int final_hour,final_minute;
int hour,minute,second;
double hour_decimal,minute_decimal;
double decimal_value;
long lc, nc, ic, jc;
int day, month, year;
lc = date + 68569;
nc = 4 * lc / 146097;
lc = lc - (146097 * nc + 3) / 4;
ic = 4000 * (lc + 1) / 1461001;
lc = lc - 1461 * ic / 4 + 31;
jc = 80 * lc / 2447;
day = lc - 2447 * jc / 80;
lc = jc / 11;
month = jc + 2 - 12 * lc;
year = 100 * (nc - 49) + ic + lc;
decimal_value = date - floor(date);
hour = decimal_value * 24;
hour_decimal= hour % 10;
minute = hour_decimal * 60;
minute_decimal = minute % 10;
second = minute_decimal * 60;
final_hour = 12 + hour;
final_minute= minute;
while(second > 59)
{
second= second -60;
final_minute++;
}
while(final_minute>59)
{
final_minute = final_minute - 60;
final_hour++;
}
if(final_hour == 24)
{
timeofday = 0;
final_hour == 12;
}
else
if (final_hour >24)
{
final_hour=final_hour - 24;
timeofday=0;
}
switch(month)
{
case 1:
//if (timeofday =0)
printf("January %d %d, %d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);
printf("January %d %d,%d:%2d:%2dPM\n", day,year,final_hour,final_minute,second);
break;
case 2:
//if (timeofday =0)
printf("February %d %d,%d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);
printf("February %d %d,%d:%2d:%2dPM\n",day,year,final_hour,final_minute,second);
break;
case 3:
//if (timeofday =0)
printf("March %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
printf("March %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;
case 4:
//if (timeofday =0)
printf("April %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
printf("April %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;
case 5:
//if (timeofday =0)
printf("May %d %d, %d:%2d:%2d AM\n", day, year,final_hour,final_minute,second);
printf("May %d %d, %d:%2d:%2d PM\n", day, year,final_hour,final_minute,second);
break;
case 6:
//if (timeofday =0)
printf("June %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
printf("June %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;
case 7:
//if (timeofday =0)
printf("July %d %d, %d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
printf("July %d %d, %d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;
case 8:
//if (timeofday =0)
printf("August %d %d,%d:%2d:%2dAM\n", day, year,final_hour,final_minute,second);
printf("August %d %d,%d:%2d:%2dPM\n", day, year,final_hour,final_minute,second);
break;
case 9:
//if (timeofday =0)
printf("September %d %d,%d:%2d:%2dAM\n",day,year,final_hour,final_minute,second);
printf("September %d %d,%d:%2d:%2dPM\n",day,year,final_hour,final_minute,second);
break;
case 10:
//if (timeofday =0)
printf("October %d %d, %d:%2d:%2d AM\n", day, year,final_hour,final_minute,second);
printf("October %d %d, %d:%2d:%2d PM\n", day, year,final_hour,final_minute,second);
break;
case 11:
//if (timeofday =0)
printf("November %d %d, %d:%2d:%2d AM\n", day, year,final_hour,final_minute,second);
printf("November %d %d, %d:%2d:%2d PM\n", day, year,final_hour,final_minute,second);
break;
case 12:
//if (timeofday =0)
printf("December %d %d, %d:%2d:%2d AM\n", day, year,final_hour,final_minute,second);
printf("December %d %d, %d:%2d:%2d PM\n", day, year,final_hour,final_minute,second);
break;
}
return 0;
}
|