در زیر الگوریتم تبدیل تاریخ به تقویم ژولین آورده شده است. در این برنامه سال و ماه و روز و ساعت و دقیقه و ثانیه را به عنوان ورودی تعریف کرده ایم که غیر از ثانیه که می توان را به صورت اعشاری نیز وارد کرد بقیه متغیرها به صورت عدد صحیح می باشد. در پایان تعداد روز به تقویم ژولین محاسبه می شود.
//************************************
//In the name of God
//JulianDate convertor
//Author: seyed hamed mousavi nezhad
//27-10-2010
//************************************
#include <stdio.h>
#include <string.h>
#include <math.h>
int year, month, day, hour, minute, A, B, C, D;
float second;
double d, JD;
main()
{
puts ("\n\t\t\t\tIn The Name Of GOD" );
puts ("\n\nJulianDate convertor" );
puts("\n*******************************************************************************" );
puts ("\nyear & month & day & hour & minute must be an Intiger and second can be Decimal.");
puts("*******************************************************************************" );
printf ("\n\nYour Date :");
printf ("\n\n\tyear=");
scanf ("%d",&year);
printf ("\n\n\tmonth=");
scanf ("%d",&month);
printf ("\n\n\tday=");
scanf ("%d",&day);
printf ("\n\n\thour=");
scanf ("%d",&hour);
printf ("\n\n\tminute=");
scanf ("%d",&minute);
printf ("\n\n\tsecond=");
scanf ("%f",&second);
d=day+(hour+minute/60+second/3600)/24;
if (month<=2)
{
year-=1;
month+=12;
}
printf("\nyear=%d\tmonth=%d\tday=%d\thour=%d\tminute=%d\tsecond=%d"
,year,month,day,hour,minute,second);
puts("\n*******************************************************************************" );
A=floor(year/100);
B=2-A+floor(A/4);
C=floor(365.25*year);
D=floor(30.6001*(month+1));
printf("\nA=%d\nB=%d\nC=%d\nD=%d",A,B,C,D);
JD=B+C+D+d+1720994.5;
printf ("\n\n\t\tJulian Date is %f days",JD);
getchar();
getchar();
}
موفق باشید