用c语言编写一个年历系统

qq_17153977 2014-07-02 12:47:50
年历系统首先对于输入的任一年,能够给出该年每月的日期及实际周几的对应情况,并与实际的星期数垂直对齐,如下表所示(当输入2004时显示如下):
Input the year:2004
The calendar of the year 2004.
Januray 1 February 2
============================== ==============================
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 2 3 1 2 3 4 5 6 7
4 5 6 7 8 9 10 8 9 10 11 12 13 14
11 12 13 14 15 16 17 15 16 17 18 19 20 21
18 19 20 21 22 23 24 22 23 24 25 26 27 28
25 26 27 28 29 30 31 29
============================== ==============================
March 3 April 4
============================== ==============================
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 29 30
============================== ==============================

功能要求 :
⑴ 输入任一年将显示出该年的所有月份日期,对应的星期,输出的格式如上表要求(注意闰年情况);
⑵ 输入任意日期(包括年、月、日,格式有yyy/mm/dd、dd/mm/yyyy、mm/dd/yyyy、和yyyy,mm,dd、mm,dd,yyyy、dd,mm,yyyy六种基本情况),要求能够显示出该日期是本年的哪一周,是星期几。
...全文
308 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyjj_99 2014-07-04
  • 打赏
  • 举报
回复
loong0306 2014-07-04
  • 打赏
  • 举报
回复
引用 7 楼 qq_17153977 的回复:
引用 4 楼 u010957746 的回复:
引用 1 楼 mujiok2003 的回复:
看看Linux cal 源码
+++++++++++++111111111111111
啥意思?
Linux 中的 cal功能很强大的
初見的畫面 2014-07-03
  • 打赏
  • 举报
回复
引用 9 楼 qq_17153977 的回复:
[quote=引用 8 楼 yangyangsnr 的回复:] [quote=引用 6 楼 qq_17153977 的回复:] [quote=引用 2 楼 yangyangsnr 的回复:] http://blog.csdn.net/yangyangsnr/article/details/29220581 N久之前写的,写的太复杂的,能用就凑合着用吧。 而且,写这么复杂都用不了250行,你们老师有必要搞个长度要求么?
就是不知道老师怎么想的,哭了都,大神你能不能帮帮忙,[/quote] http://blog.csdn.net/yangyangsnr/article/details/29220581 打开链接,复制,粘贴,编译,完事。[/quote]好吧,谢谢大神,我试了一下,真的可以也。只是我要把它在加加改改成250行代码。[/quote]各种空格 换行 空白行
whoho 2014-07-03
  • 打赏
  • 举报
回复
一个简单算法: 取得那一年第一天零时的time_t值t0 (调用time.h中的mktime) 然后每次在t0上累加24小时 (24*60*60秒),然后调用localtime就可以获得星期/月份/日期数据 依次累加至年份变化为止 当然效率高些的算法也有,只调用一次mktime,获得那一天第一天星期几 然后接下来的365天或者364天的星期数据就是基于累加值对7取模的线性计算 至于日期数据,根据年份你能知道每个月有几天,所以每天几月几号都可以算下来 这种算法,用两重的for循环就可以实现了 代码不写了,建议根据第二种算法来,呵呵
qq_17153977 2014-07-02
  • 打赏
  • 举报
回复
引用 8 楼 yangyangsnr 的回复:
[quote=引用 6 楼 qq_17153977 的回复:] [quote=引用 2 楼 yangyangsnr 的回复:] http://blog.csdn.net/yangyangsnr/article/details/29220581 N久之前写的,写的太复杂的,能用就凑合着用吧。 而且,写这么复杂都用不了250行,你们老师有必要搞个长度要求么?
就是不知道老师怎么想的,哭了都,大神你能不能帮帮忙,[/quote] http://blog.csdn.net/yangyangsnr/article/details/29220581 打开链接,复制,粘贴,编译,完事。[/quote]好吧,谢谢大神,我试了一下,真的可以也。只是我要把它在加加改改成250行代码。
孤雲独去闲 2014-07-02
  • 打赏
  • 举报
回复
引用 6 楼 qq_17153977 的回复:
[quote=引用 2 楼 yangyangsnr 的回复:] http://blog.csdn.net/yangyangsnr/article/details/29220581 N久之前写的,写的太复杂的,能用就凑合着用吧。 而且,写这么复杂都用不了250行,你们老师有必要搞个长度要求么?
就是不知道老师怎么想的,哭了都,大神你能不能帮帮忙,[/quote] http://blog.csdn.net/yangyangsnr/article/details/29220581 打开链接,复制,粘贴,编译,完事。
qq_17153977 2014-07-02
  • 打赏
  • 举报
回复
引用 4 楼 u010957746 的回复:
引用 1 楼 mujiok2003 的回复:
看看Linux cal 源码
+++++++++++++111111111111111
啥意思?
qq_17153977 2014-07-02
  • 打赏
  • 举报
回复
引用 2 楼 yangyangsnr 的回复:
http://blog.csdn.net/yangyangsnr/article/details/29220581 N久之前写的,写的太复杂的,能用就凑合着用吧。 而且,写这么复杂都用不了250行,你们老师有必要搞个长度要求么?
就是不知道老师怎么想的,哭了都,大神你能不能帮帮忙,
Mortred_cp 2014-07-02
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/380172915
loong0306 2014-07-02
  • 打赏
  • 举报
回复
引用 1 楼 mujiok2003 的回复:
看看Linux cal 源码
+++++++++++++111111111111111
mujiok2003 2014-07-02
  • 打赏
  • 举报
回复
http://www.oschina.net/code/explore/php-5.2.15/ext/calendar
孤雲独去闲 2014-07-02
  • 打赏
  • 举报
回复
http://blog.csdn.net/yangyangsnr/article/details/29220581 N久之前写的,写的太复杂的,能用就凑合着用吧。 而且,写这么复杂都用不了250行,你们老师有必要搞个长度要求么?
mujiok2003 2014-07-02
  • 打赏
  • 举报
回复
看看Linux cal 源码

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧