找回密码
 注册会员
查看: 1138|回复: 0

c语言日历

[复制链接]
发表于 2009-12-9 14:28:32 | 显示全部楼层 |阅读模式
<p>c语言日历</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:10 -</p>
<p>解决时间:2009-12-9 14:26</p>
<p>要求大致是这样的,以2000年1月1日,输入一个天数比如1000,计算2000年1月1日的1000天后的日期和星期,高手帮忙看下</p>
<p>提问者: 阿飞1414 - 一级</p>
<p>最佳答案</p>
<p>#include <stdio.h></p>
<p>bool fun1( int i )</p>
<p>{</p>
<p>if ( i % 400 == 0 &#73;&#73; ( i % 4 == 0 && i % 100 != 0 ) )</p>
<p>return 1;</p>
<p>return 0;</p>
<p>}</p>
<p>void fun2( long* d, int* y, int* m, int* dy )</p>
<p>{</p>
<p>int k = 366;</p>
<p>while( *d >= k )</p>
<p>{</p>
<p>++( *y );</p>
<p>*d -= k;</p>
<p>if( fun1( *y ) )</p>
<p>k = 366;</p>
<p>else k = 365;</p>
<p>}</p>
<p>k = 31;</p>
<p>while( *d >= k)</p>
<p>{</p>
<p>++( *m );</p>
<p>*d -= k;</p>
<p>switch( *m )</p>
<p>{</p>
<p>case 1:</p>
<p>case 3:</p>
<p>case 5:</p>
<p>case 7:</p>
<p>case 8:</p>
<p>case 10:</p>
<p>case 12:k = 31; break;</p>
<p>case 4:</p>
<p>case 6:</p>
<p>case 9:</p>
<p>case 11: k = 30; break;</p>
<p>default: k = 0; break;</p>
<p>}</p>
<p>if( *m == 2 )</p>
<p>{</p>
<p>if( fun1( *y ) )</p>
<p>k = 29;</p>
<p>else k = 28;</p>
<p>}</p>
<p>}</p>
<p>*dy += *d;</p>
<p>}</p>
<p>void main()</p>
<p>{</p>
<p>int year = 2000, moon = 1, day = 1;</p>
<p>long data = 0;</p>
<p>printf( "请输入天数:" );</p>
<p>scanf( "%d",&data );</p>
<p>fun2( &data, &year, &moon, &day );</p>
<p>printf( "%d年%d月%d日", year, moon, day );</p>
<p>}</p>
<p>0</p>
<p>回答者:</p>
<p>jinguigame - 一级   2009-12-6 12:15</p>
<p>我来评论>></p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-5-20 21:48

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表