C语言 日历打印 程序设计,打印日历

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include "stdio.h" /* Required for MS-DOS use */

#define ENTER 0x1C0D /* Enter key */

int year, month, day;

static char *days[8] = {" ","Sunday ","Monday ","Tuesday ",

"Wednesday","Thursday ","Friday ","Saturday "};

struct TIMEDATE {

int year; /* year 1980..2099 */

int month; /* month 1=Jan 2=Feb, etc. */

int day; /* day of month 0..31 */

int hours; /* hour 0..23 */

int minutes; /* minute 0..59 */

int seconds; /* second 0..59 */

int hsecs; /* 1/100ths of second 0..99 */

char dateline[47]; /* date & time together */

};

static struct TIMEDATE today;

main()

{

char cmonth[3];

char cday[3];

char cyear[5];

double getdays();

double daynumb, numbnow;

int weekday, retcode, dayer, i;

dayer = datetime(&today);

clrscn();

for (i=0;i<3;++i)cmonth[i]='\0';

for (i=0;i<3;++i)cday[i]='\0';

for (i=0;i<5;++i)cyear[i]='\0';

putstr(5,8,14,"Enter date in MM DD YYYY format:");

while (retcode != ENTER)

{

retcode = bufinp(5,41,13,2,cmonth);

if (retcode != ENTER) retcode = bufinp(5,44,13,2,cday);

if (retcode != ENTER) retcode = bufinp(5,47,13,4,cyear);

}

year = atoi(&cyear);

month = atoi(&cmonth);

day = atoi(&cday);

daynumb = getdays(year, month, day);

numbnow = getdays(today.year, today.month, today.day);

weekday = weekdays(daynumb);

if (numbnow - daynumb == 0)

printf("\n\n%02d-%02d-%d is",month, day, year);

if (numbnow - daynumb > 0)

printf("\n\n%02d-%02d-%d was",month, day, year);

if (numbnow - daynumb 

printf("\n\n%02d-%02d-%d will be",month, day, year);

printf(" a %s\n",days[weekday]);

} /* end MAIN */

/************************************************************

* GETDAYS - From integer values of year (YYYY), month *

* (MM) and day (DD) this subroutine returns a *

* double float number which represents the *

* number of days since Jan 1, 1980 (day 1). *

* This routine is the opposite of GETDATE. *

************************************************************/

double getdays(year, month, day)

int year, month, day;

{

int y,m;

double a,b,d, daynumb;

double floor(),intg();

/**********************************

** make correction for no year 0 **

**********************************/

if (year 

else y = year;

/*********************************************************

** Jan and Feb are months 13 and 14 in this calculation **

*********************************************************/

m = month;

if (month 

{

m = m + 12;

y = y - 1;

}

/**************************

** calculate Julian days **

**************************/

d = floor(365.25 * y) + intg(30.6001 * (m + 1)) + day - 723244.0;

/**********************************************

** use Julian calendar if before Oct 5, 1582 **

**********************************************/

if (d 

/*************************************

** otherwise use Gregorian calendar **

*************************************/

else

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值