日历系统C语言怎么弄个菜单,用C语言设计一个台历系统。求代码

用C语言设计一个年历系统。。。求代码

问题描述:

年历系统首先对于输入的任一年,能够给出该年每月的日期及实际周几的对应情况,并与实际的星期数垂直对齐,如下表所示(当输入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六种基本情况),要求能够显示出该日期是本年的哪一周,是星期几。

------解决方案--------------------

这是C++版本的,将其中的C++语法改成C语言的即可。

//日历   作者QQ 93506222 于2012.9.22

#include 

using namespace std;

#include 

#include 

#include 

//是否闰年

#define IS_LEAP_YEAR(iYear) (((iYear) % 100 == 0) ? ((iYear) % 400 == 0) : ((iYear) % 4 == 0))

int Calendar(int iYear, int iMonth);

void main()

{

//获取今天的日期

SYSTEMTIME tm;

::GetLocalTime(&tm);

int iYear = tm.wYear;

int iMonth = tm.wMonth;

do {

system("cls");

int ch = Calendar(iYear, iMonth);

if (ch == 27) break;

switch (ch)

{

case 75://

iYear--;

break;

case 77://-->

iYear++;

break;

case 80://下箭头

iMonth++;

if (iMonth > 12)

{

iYear++;

iMonth = 1;

}

break;

case 72://上箭头

iMonth--;

if (iMonth 

{

iYear--;

iMonth = 12;

}

break;

case 71://Home

iYear = tm.wYear;

iMonth = tm.wMonth;

break;

}

} while (1);

}

//显示给定年月的日历

//返回值为获取的用户按键, 以确定下一步的操作

int Calendar(int iYear, int iMonth)

{

int i, j, iDays;

//初始化数组w的值为1至31

int w[31];

for (i = 0; i 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值