C实例编程(用C语言编写的一个日历文件).docx

上传人:壹****1 文档编号:545669119 上传时间:2024-01-11 格式:DOCX 页数:9 大小:13.35KB
返回 下载 相关 举报
C实例编程(用C语言编写的一个日历文件).docx_第1页
第1页 / 共9页
C实例编程(用C语言编写的一个日历文件).docx_第2页
第2页 / 共9页
C实例编程(用C语言编写的一个日历文件).docx_第3页
第3页 / 共9页
C实例编程(用C语言编写的一个日历文件).docx_第4页
第4页 / 共9页
C实例编程(用C语言编写的一个日历文件).docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C实例编程(用C语言编写的一个日历文件).docx》由会员分享,可在线阅读,更多相关《C实例编程(用C语言编写的一个日历文件).docx(9页珍藏版)》请在金锄头文库上搜索。

1、 C实例编程(用C语言编写的一个日历文件)#include#include#include#includetypedef strUCtunsigned char day;unsigned char month;unsigned short year;T_MFW_DATE;typedef structT_MFW_DATE date; /*记录的日期*/t_cldrecord;typedef structT_MFW_DATE today_date; /*在程序中没有作用*/T_MFW_DATE cursor_date;int days_map67; /*日期地图*/t_cldmain_data;t

2、_cldmain_data *cldmain_data;void cldmain_get_days_map(void);void main(void)int i,j;cldmain_data = (t_cldmain_data*)malloc(sizeof(t_cldmain_data);cldmain_data-cursor_date.day = 20;while(1)char buf20;char *p;memset(buf,0,20);printf(“year month:“);gets(buf);if(buf0 = ”q”)break;cldmain_data-cursor_date.

3、year = strtod(buf,p +;cldmain_data-cursor_date.month = strtod(p,printf(“year %d month %d “,(cldmain_data-cursor_date.year),(cldmain_data-cursor_date.month);cldmain_get_days_map();printf(“ mo tu w th fr sa su “);for(j = 0; j days_mapji);printf(“ “);/getchar();/*检查日期是否合法合法返回1,考试.大提示否则返回0*/int check_da

4、te(T_MFW_DATE date)char month_days = ;/*大于2022年,小于2100年,月份合法*/if(date.year = 2100 date.month 12)return 0;/*day合法*/if(date.day month_daysdate.month - 1)return 0;if(date.month = 2)if(date.year % 4 != 0)if(date.day = 29)return 0;return 1;/*功能:得到每个月第一天是星期几星期 一 二 三 四 五 六 日返回值:1 2 3 4 5 6 7假如返回为0,则出错*/int

5、 get_weekday_of_month(T_MFW_DATE cursor_date)int day;/*参照1997年1月1日,参数cursor_date从2022年1月1日到2099年1月1日*/char month_days = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;int this_year_days = 0, 31, 59, 90, 120, 151,181, 212, 243, 273, 304, 334;int cursor_year_days = this_year_dayscursor_date.month - 1

6、+ (cursor_date.day = 1);int comp_days = (cursor_date.year - 1997)*365 + cursor_year_days;int i = (cursor_date.year - 1997)/4;comp_days = comp_days + i * 1;if(cursor_date.month 2)if( cursor_date.year % 4 = 0 )comp_days += 1;if(cursor_date.day 2098)return 0;day = comp_days % 7;/*1997年1月1日是星期三*/day = (

7、day + 2) % 7;if(day = 0)day = 7;return day;/*依据参数的值,得到该年该月有多少天.返回值:该月的天数*/int count_days_of_month(T_MFW_DATE cursor_date)char month_days = ;unsigned char day = cldmain_data-cursor_date.day;unsigned char month = cldmain_data-cursor_date.month;unsigned short year = cldmain_data-cursor_date.year;if(mon

8、th != 2)return month_daysmonth -1;elseif(year%4 != 0)return 28;if(year%4 = 0)if(year%100 = 0)if(year %400 = 0)return 29;return 28;return 29;/*得到日期地图,保存到全局构造变量cldmain_data的成员数组变量days_map中.*/void cldmain_get_days_map(void)int i;int day;T_MFW_DATE cursor_date = cldmain_data-cursor_date;int *map_p = cldmain_data-days_map0;int days_count;int weekday;for(i = 0; i cursor_date) = 0)return;days_count = count_days_of_month(cldmain_data-cursor_date);weekday = get_weekday_of_month(cldmain_data-cursor_date);day = 1;for(i = weekday-1; i days_count + weekday - 1; i+)map_pi = day;day +;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号