利用c语言输出某月日历#include stdio.h
#include string.h
bool isLeapYear(int);
int getWeekDay(int, int, int);
int main(int argc, char const *argv[])
{
int year;
int month;
printf("输入日期(yyyy-mm):");
scanf("%d-%d-%d", year, month);//输入年和月
printf("%d年%d月\n", year, month);//输出日历日历标题
printf("日 一 二 三 四 五 六\n");//输出星期
//本函数获取某个日期是星期几,这里获取每月的1号是星期几,返回是是[0-7]对应(星期天-星期六)
int week = getWeekDay(year, month, 1);
int i;
for (i = 0; iweek; i++)//每月第一周前几天用空格填充
printf("");
int endDayOfMonth;//每个月的最后一天
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
endDayOfMonth = 31;
else if (month == 2)
{
if (isLeapYear(year))
endDayOfMonth = 29;
else
endDayOfMonth = 28;
}
else
endDayOfMonth = 30;
int dayOfMonth = 1;
//从一号循环到本月末
while (dayOfMonth = endDayOfMonth)
{
printf("%2d ", dayOfMonth);
dayOfMonth++;
//每输出完星期六的日期后就换行(对应周数起点是从week开始的,所以要在天数上加上week)
if ((dayOfMonth + week- 1) % 7 == 0)
printf("\n");
}
printf("\n");
return 0;
}
//判断闰年
bool isLeapYear(int y)
{
if (y % 4 == 0y % 100 != 0 || y % 400 == 0)
return true;
return false;
}
//获取某天是星期几返回值(0-7)
int getWeekDay(int y, int m, int d)
{
//计算星期几的固定公式,Y是年D是这个日期在本年的天数
//W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D
int days = d;
int i;
for (i = 1; im; i++)
{
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
days += 31;
else if (i == 2)
{
if (isLeapYear(y))
days += 29;
else
days += 28;
}
else
days += 30;
}
int temp = y - 1 + (int)((y - 1) / 4) - (int)((y - 1) / 100) + (int)((y - 1) / 400) + days;
return temp % 7;
}
c语言中time函数怎么用?头文件time.h \x0d\x0a\x0d\x0a@函数名称:localtime \x0d\x0a函数原型:struct tm *localtime(const time_t *timer) \x0d\x0a函数功能:返回一个以tm结构表达c语言返回日历函数的机器时间信息 \x0d\x0a函数返回:以tm结构表达c语言返回日历函数的时间c语言返回日历函数,结构tm定义如下: \x0d\x0astructtm{ \x0d\x0aint tm_sec; \x0d\x0aint tm_min; \x0d\x0aint tm_hour; \x0d\x0aint tm_mday; \x0d\x0aint tm_mon; \x0d\x0aint tm_year; \x0d\x0aint tm_wday; \x0d\x0aint tm_yday; \x0d\x0aint tm_isdst; \x0d\x0a}; \x0d\x0a参数说明:timer-使用time()函数获得c语言返回日历函数的机器时间 \x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t timer; \x0d\x0astruct tm *tblock; \x0d\x0atimer=time(NULL); \x0d\x0atblock=localtime(timer); \x0d\x0aprintf("Local time is: %s",asctime(tblock)); \x0d\x0areturn 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称:asctime \x0d\x0a函数原型:char* asctime(struct tm * ptr) \x0d\x0a函数功能:得到机器时间(日期时间转换为ASCII码) \x0d\x0a函数返回:返回的时间字符串格式为:星期,月,日,小时:分:秒,年 \x0d\x0a参数说明:结构指针ptr应通过函数localtime()和gmtime()得到 \x0d\x0a所属文件:\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0aint main() \x0d\x0a{ \x0d\x0astruct tm t; \x0d\x0achar str[80]; \x0d\x0at.tm_sec=1; \x0d\x0at.tm_min=3; \x0d\x0at.tm_hour=7; \x0d\x0at.tm_mday=22; \x0d\x0at.tm_mon=11; \x0d\x0at.tm_year=56; \x0d\x0at.tm_wday=4; \x0d\x0at.tm_yday=0; \x0d\x0at.tm_isdst=0; \x0d\x0astrcpy(str,asctime(t)); \x0d\x0aprintf("%s",str); \x0d\x0areturn 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称:ctime \x0d\x0a函数原型:char *ctime(long time) \x0d\x0a函数功能:得到日历时间 \x0d\x0a函数返回:返回字符串格式:星期,月,日,小时:分:秒,年 \x0d\x0a参数说明:time-该参数应由函数time获得 \x0d\x0a所属文件:\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t t; \x0d\x0atime(t); \x0d\x0aprintf("Today's date and time: %s",ctime(t)); \x0d\x0areturn 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称:difftime \x0d\x0a函数原型:double difftime(time_t time2, time_t time1) \x0d\x0a函数功能:得到两次机器时间差c语言返回日历函数,单位为秒 \x0d\x0a函数返回:时间差 , 单位为秒 \x0d\x0a参数说明:time1-机器时间一,time2-机器时间二.该参数应使用time函数获得 \x0d\x0a所属文件:\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t first, second; \x0d\x0aclrscr(); \x0d\x0afirst=time(NULL); \x0d\x0adelay(2000); \x0d\x0asecond=time(NULL); \x0d\x0aprintf("The difference is: %f seconds",difftime(second,first)); \x0d\x0agetch(); \x0d\x0areturn 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称:gmtime \x0d\x0a函数原型:struct tm *gmtime(time_t*time) \x0d\x0a函数功能:得到以结构tm表示的时间信息 \x0d\x0a函数返回:以结构tm表示的时间信息指针 \x0d\x0a参数说明:time-用函数time()得到的时间信息 \x0d\x0a所属文件:\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0achar *tzstr="TZ=PST8PDT"; \x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t t; \x0d\x0astruct tm *gmt, *area; \x0d\x0aputenv(tzstr); \x0d\x0atzset(); \x0d\x0at=time(NULL); \x0d\x0aarea=localtime(t); \x0d\x0aprintf("Local time is:%s", asctime(area)); \x0d\x0agmt=gmtime(t); \x0d\x0aprintf("GMT is:%s", asctime(gmt)); \x0d\x0areturn 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称:time \x0d\x0a函数原型:time_t time(time_t *timer) \x0d\x0a函数功能:得到机器的日历时间或者设置日历时间 \x0d\x0a函数返回:机器日历时间 \x0d\x0a参数说明:timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型 \x0d\x0a所属文件:\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t t; \x0d\x0at=time(); \x0d\x0aprintf("The number of seconds since January 1,1970 is %ld",t); \x0d\x0areturn 0; \x0d\x0a} \x0d\x0a\x0d\x0a@函数名称:tzset \x0d\x0a函数原型:void tzset(void) \x0d\x0a函数功能:UNIX兼容函数,用于得到时区,在DOS环境下无用途 \x0d\x0a函数返回: \x0d\x0a参数说明: \x0d\x0a所属文件:\x0d\x0a\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t td; \x0d\x0aputenv("TZ=PST8PDT"); \x0d\x0atzset(); \x0d\x0atime(td); \x0d\x0aprintf("Current time=%s",asctime(localtime(td))); \x0d\x0areturn 0; \x0d\x0a}
推荐阅读
- 做新媒体该如何赚钱快一点,新媒体怎么盈利
- 怎么给u盘下载文件,怎么从电脑上往u盘下载文件
- 虚拟化主机药物研发,虚拟化 方案
- 完美国际账户服务器,完美国际服务端
- go语言与区块链前景如何 go语言区块链应用开发从入门到精通
- ios如何开锁,苹果开锁怎么打开
- 大型即时pk网页游戏,大型即时pk网页游戏推荐
- jquery控制层宽,jquery怎么设置宽度
- 用go语言开发一个项目 用go语言开发一个项目要多久