回 帖 发 新 帖 刷新版面

主题:[讨论]另一万年历的问题<------30!!!!!!!!!!!!!!!!!!!!

若知道某年1月1日是星期N,那么按要求输出这个年的第K个月的日历.

回复列表 (共5个回复)

沙发

确定星期几就好办了
这个可以通过天数确定 不算难

板凳

呵呵~~事实上不必要知道某年的1月1日是星期几,可以推算出来的。输入年和月即可。我好久前都贴过程序的!不过这里的程序如果不加精,时间长了就被删噢!找都找不回到啦!我再贴一个给你看看:



program calendar;
Const
   mdays:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
var
   year,month,m,n,i:integer;

begin
    write('Enter year , month: ');
    readln(year,month);
    m:=(year+(year-1) div 4-(year-1) div 100+(year-1) div 400) mod 7;
                                            {m = 该年第一天星期几}

    for i:=1 to month-1 do
     begin
       m := m+mdays[i];
       if (i=2) and ((year mod 4=0) and (year mod 100<>0) or (year mod 400=0))
          then m := m+1;
     end;
    m:=m mod 7;       {m = 该月第一天星期几}

    writeln;
    writeln(year,'-',month);
    writeln('SUN':6,'MON':6,'TUE':6,'WED':6,'THU':6,'FRI':6,'SAT':6);
    for i:=0 to m-1 do write(' ':6);
    n:=mdays[month];
    if (month=2) and ((year mod 4=0) and (year mod 100<>0) or (year mod 400=0))
       then n:=n+1;                {n = 该月的天数}

    for i:=1 to n do
      begin
          write(i:6);
          m:=m+1;
          if m mod 7=0 then writeln;
      end;
     writeln;
end.



例如输 2005 11
打印结果如果下:

2005-11
   SUN   MON   TUE   WED   THU   FRI   SAT
                 1     2     3     4     5
     6     7     8     9    10    11    12
    13    14    15    16    17    18    19
    20    21    22    23    24    25    26
    27    28    29    30

3 楼

请问能不能输出农历啊????

4 楼

农历通常在HTML文件里出现过(利用JavaScript),是列表检索,没办法计算出来,程序有够长的。曾经有个想法把它改编成pascal程序,但编起来太长了,还包含了二十四节气,所以我没有去改编。

5 楼

原来农历这东西是没有规律可循的啊!
那么请问有谁知道,农历这东西是谁创立的?依据什么来创立的?

我来回复

您尚未登录,请登录后再回复。点此登录或注册