c写的一个日历文件:

/*

该程序在vc中调试运行通过.

*/

#include

#include

#include

#include

typedef struct

{

unsigned char day;

unsigned char month;

unsigned short year;

}T_MFW_DATE;

typedef struct

{

T_MFW_DATE date;  /*记录的日期*/

}t_cldrecord;

typedef struct

{

T_MFW_DATE today_date;  /*在程序中没有作用*/

T_MFW_DATE cursor_date;

int days_map[6][7];   /*日期地图*/

}t_cldmain_data;

t_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 buf[20];

char *p;

memset(buf,0,20);

printf("year month:");

gets(buf);

if(buf[0] == ’q’)break;

cldmain_data->cursor_date.year = strtod(buf,&p);

p ++;

cldmain_data->cursor_date.month = strtod(p,&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 < 6; j ++)

{

printf(" ");

for(i = 0; i < 7; i ++)

{

printf("%i ",cldmain_data->days_map[j][i]);

}

printf(" ");

}

}

//getchar();

}

/*

检查日期是否合法

合法返回1,否则返回0

*/

int check_date(T_MFW_DATE date)

{

char month_days[] = ;

/*大于2000年,小于2100年,月份合法*/

if(date.year < 2000 || date.year >= 2100 || date.month < 1 || date.month > 12)

{

return 0;

}

/*day合法*/

if(date.day < 1)return 0;

if(date.day > month_days[date.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 get_weekday_of_month(T_MFW_DATE cursor_date)

{

int day;

/*参照1997年1月1日,参数cursor_date从2000年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_days[cursor_date.month - 1] + (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 = (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(month != 2)

{

return month_days[month -1];

}

else

{

if(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_map[0];

int days_count;

int weekday;

for(i = 0; i < 6*7; i++)

{

map_p[i] = 0;

}

if(check_date(cldmain_data->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_p[i] = day;

day ++;

}

}

linux怎么日历写入文件夹,用c写的一个日历文件相关推荐

  1. win7计算机用户文件夹,win7系统盘里有一个用户文件夹

    由于一些新电脑在进行磁盘分区时,留给系统盘的空间不够大,并且随着日常电脑使用,软件不断安装数据信息不断写入系统盘空间变得吃紧,不但影响系统响应速度也影响整体效能,因此我们可以把用户文件夹从Win7系统 ...

  2. 【python】保存某个文件夹下所有图片名字到一个txt文件里

    用python实现读取某一文件夹下的所有图片名字到一个txt文件 import os dir1='/data/Datasets/JPEGImages'#图片文件存放地址 txt1 = '/data/D ...

  3. linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统

    这段时间在学习python,接触到了网络编程中的socket这块,加上自己在用的Linux服务器都是原生支持python的,于是乎有了个做文件传输功能程序的想法. 毕竟python语言中,有下载功能的 ...

  4. Linux下使用C语言查找一个文件夹下指定扩展名的所有文件

    最近在linux下要干点和c语言相关的任务,其中涉及使用C语言查找一个文件夹下指定扩展名的所有文件,我去开始在网上查找后粘贴后不能用,最后发现是windows下才能使用.最后找到了一篇不错的文章,ht ...

  5. linux 复制文件夹下的所有内容到目标文件夹

    在linux 下可以使用cp 命令去复制内容例如 #复制到目录文件夹* 和 . 代表目录下的所有文件 cp ~/temp/* ~/text/ cp ~/temp/. ~/text/ #复制到当前文件夹 ...

  6. ftp服务器上传创建文件夹权限设置密码,ftp服务器如何创建文件夹权限设置

    ftp服务器如何创建文件夹权限设置 内容精选 换一换 该任务指导用户使用Loader将数据从Hive导出到SFTP服务器.创建或获取该任务中创建Loader作业的业务用户和密码.确保用户已授权访问作业 ...

  7. python检测文件夹中新增文件_python检测文件夹变化,并拷贝有更新的文件到对应目录的方法...

    检测文件夹,拷贝有更新的文件到对应目录 2016.5.19 亲测可用,若有借鉴请修改下文件路径: 学习python小一个月后写的这个功能,属于初学,若有大神路过,求代码优化~ newcopy.py: ...

  8. java解压服务器文件夹,java获取远程服务器上的文件夹

    java获取远程服务器上的文件夹 内容精选 换一换 安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发.其他类型服务器可跳过此步骤.本文以Windows Server 2016为例, ...

  9. 请问苹果x是如何建文件夹_苹果x怎么创建文件夹相关阅读-苹果x怎么创建文件夹文章阅读-123文学网...

    在日常的生活中,我们会把手机相关的APP放在同一个文件夹下.那么苹果手机怎么设置文件夹呢?下面就让afU123小编来告诉大家吧,欢迎阅读. 1.打开苹果手机. 2.一直按着一个软件的图标,知道图标开始 ...

最新文章

  1. golang源码分析:调度器chan调度
  2. pandas 增加列
  3. 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
  4. python3 递归函数的理解
  5. HDU 1964 Pipes
  6. python内置高阶函数_map()函数~~内置的高阶函数
  7. 机器人伪装成人类在 GitHub 上为开源项目修复 bug
  8. Prolog 语言入门(一)
  9. Android开发 Android Studio2.0 教程从入门到精通Windows版 - 入门篇
  10. redis面试常问--缓存穿透
  11. opendss视频教程
  12. 最新的python是哪个版本的好_书声琅琅:Python哪个版本好用
  13. 大家快来看看,心中无女人,写文章自然神。
  14. 过滤文本中的中英文标点符号、字母、数字、表情
  15. 数据分析可视化08 案例 2:历史数据变化趋势图设计
  16. 电影《不夜城》的主题曲:金城武、山本未来主演
  17. 解决Error java 错误 不支持发行版本
  18. ubuntu下命令行禁用笔记本触摸板
  19. C语言求1000以内水仙花数
  20. 计算机的随想作文500字,新年随想作文500字(通用5篇)

热门文章

  1. 为植物病害对象检测引入改进的 PlantDoc 数据集
  2. 中国----一个只要富人不要穷人的国家
  3. 感应电动机的启动压降计算
  4. 如何在Unity用ShaderGraph画一道彩虹
  5. android动态壁纸1——初步框架(有背景,能使用,仿可爱宝贝)
  6. kmeans算法中的sse_kmeans聚类理论篇
  7. Linux--Ubuntu入门篇(Ubuntu下压缩与解压缩)
  8. 【软件工程】常见的几种软件过程模型的比较
  9. Java核心技术学习--第八天
  10. ARM Porting