所以我必須寫纔是最重要的一天,因爲1.1.1另外一個計劃,我必須使用公曆這一切的時間(即使它不是從1.1.1使用) 不管怎麼說,這裏是我寫的,但我相信它有一些錯誤:計數天1.1.1
#include <stdio.h>
int main()
{
int d, m, r;
printf("Podaj dzien, miesiac i rok\n");
scanf("%d %d %d", &d, &m, &r);
printf("%d", iledni(d, m, r));
return 0;
}
int iledni(int d, int m, int r)
{
int dni,x;
int msc[12]={0,31,59,90,120,151,181,212,243,273,304,334};
dni=r*365+msc[m-1]+d-1;
dni=dni+(int)((r-1)/4)-(int)((r-1)/100)+(int)((r-1)/400);
if (m>2 && r%4 == 0 && r%100 != 0 || r%400 == 0)
dni=dni+1;
return dni;
}
我的下一個任務是寫計數天,因爲我出生到當前日期的功能,我不知道該數據應該如何進入,所以現在我認爲它只是寫在INT主要(),所以我不得不改變只是iledni功能,但我有一些問題的,要確切錯誤的結果,並就如何解決它> <
不知道10#include <stdio.h>
int main()
{
int d=17, m=8, r=2013;
int du=25, mu=11, ru=1994;
printf("%d", iledni(d, m, r, du, mu, ru));
return 0;
}
int iledni(int d, int m, int r, int du, int mu, int ru)
{
int dni,x;
int msc[12]={0,31,59,90,120,151,181,212,243,273,304,334};
int mscdodni[12]={31,28,31,30,31,30,31,31,30,31,30,31};
dni=(r-ru)*365+msc[m-1]-msc[mu]+d-1+(mscdodni[mu-1]-du);
for (ru=1994; ru<=r; ru++)
{
if (ru%4 == 0 && ru%100 != 0 || ru%400 == 0)
dni=dni+1;
}
return dni;
}
告訴我,如果我應該解釋任何行,我也是初學者,所以我很抱歉,如果我寫的東西沒有意義,我不太瞭解C或編程整體。
的技術術語是「Proleptic公曆」。請參閱http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar。 –
謝謝,不知道。 – deviance