0
点赞
收藏
分享

微信扫一扫

C语言 显示指定月的日历

#include <stdio.h>

int&nbsp;mday[12]&nbsp;=&nbsp;{31,&nbsp;28,&nbsp;31,&nbsp;30,&nbsp;31,&nbsp;30,&nbsp;31,&nbsp;31,&nbsp;30,&nbsp;31,&nbsp;30,&nbsp;31};

int&nbsp;dayofweek(int&nbsp;year,&nbsp;int&nbsp;month,&nbsp;int&nbsp;day){
if&nbsp;(month&nbsp;==&nbsp;1&nbsp;||&nbsp;month&nbsp;==&nbsp;2){
year--;
month&nbsp;+=&nbsp;12;
}

return&nbsp;(year&nbsp;+&nbsp;year&nbsp;/&nbsp;4&nbsp;-&nbsp;year&nbsp;/&nbsp;100&nbsp;+&nbsp;year&nbsp;/&nbsp;400&nbsp;+&nbsp;(13&nbsp;*&nbsp;month&nbsp;+&nbsp;8)&nbsp;/&nbsp;5&nbsp;+&nbsp;day)&nbsp;%&nbsp;7;
}

int&nbsp;is_leap(int&nbsp;year){
return&nbsp;year&nbsp;%&nbsp;4&nbsp;==&nbsp;0&nbsp;&amp;&amp;&nbsp;year&nbsp;%&nbsp;100&nbsp;!=&nbsp;0&nbsp;||&nbsp;year&nbsp;%&nbsp;400&nbsp;==&nbsp;0;
}

int&nbsp;monthdays(int&nbsp;year,&nbsp;int&nbsp;month){
if&nbsp;(month--&nbsp;!=&nbsp;2){
return&nbsp;mday[month];
}
return&nbsp;mday[month]&nbsp;+&nbsp;is_leap(year);
}

void&nbsp;put_calendar(int&nbsp;y,&nbsp;int&nbsp;m){
int&nbsp;i;
int&nbsp;wd&nbsp;=&nbsp;dayofweek(y,&nbsp;m&nbsp;,&nbsp;1);
int&nbsp;mdays&nbsp;=&nbsp;monthdays(y,&nbsp;m);

printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&quot;);
printf(&quot;---------------------\n&quot;);

printf(&quot;%*s&quot;,&nbsp;3&nbsp;*&nbsp;wd,&nbsp;&quot;&quot;);

for&nbsp;(i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=&nbsp;mdays;&nbsp;i++){
printf(&quot;%3d&quot;,&nbsp;i);
if&nbsp;(++wd&nbsp;%&nbsp;7&nbsp;==&nbsp;0){
putchar(&#39;\n&#39;);
}
}

if&nbsp;(wd&nbsp;%&nbsp;7&nbsp;!=&nbsp;0){
putchar(&#39;\n&#39;);
}
}

int&nbsp;main(void){
int&nbsp;y,&nbsp;m;

puts(&quot;显示日历。\n&quot;);
printf(&quot;年:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;y);

printf(&quot;月:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;m);

putchar(&#39;\n&#39;);

put_calendar(y,&nbsp;m);

return&nbsp;0;&nbsp;
}

C语言 显示指定月的日历_#include


举报

相关推荐

0 条评论