linux怎么日历写入文件夹,用c写的一个日历文件
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写的一个日历文件相关推荐
- win7计算机用户文件夹,win7系统盘里有一个用户文件夹
由于一些新电脑在进行磁盘分区时,留给系统盘的空间不够大,并且随着日常电脑使用,软件不断安装数据信息不断写入系统盘空间变得吃紧,不但影响系统响应速度也影响整体效能,因此我们可以把用户文件夹从Win7系统 ...
- 【python】保存某个文件夹下所有图片名字到一个txt文件里
用python实现读取某一文件夹下的所有图片名字到一个txt文件 import os dir1='/data/Datasets/JPEGImages'#图片文件存放地址 txt1 = '/data/D ...
- linux 查找文件夹_用python打造一个基于socket的文件(夹)传输系统
这段时间在学习python,接触到了网络编程中的socket这块,加上自己在用的Linux服务器都是原生支持python的,于是乎有了个做文件传输功能程序的想法. 毕竟python语言中,有下载功能的 ...
- Linux下使用C语言查找一个文件夹下指定扩展名的所有文件
最近在linux下要干点和c语言相关的任务,其中涉及使用C语言查找一个文件夹下指定扩展名的所有文件,我去开始在网上查找后粘贴后不能用,最后发现是windows下才能使用.最后找到了一篇不错的文章,ht ...
- linux 复制文件夹下的所有内容到目标文件夹
在linux 下可以使用cp 命令去复制内容例如 #复制到目录文件夹* 和 . 代表目录下的所有文件 cp ~/temp/* ~/text/ cp ~/temp/. ~/text/ #复制到当前文件夹 ...
- ftp服务器上传创建文件夹权限设置密码,ftp服务器如何创建文件夹权限设置
ftp服务器如何创建文件夹权限设置 内容精选 换一换 该任务指导用户使用Loader将数据从Hive导出到SFTP服务器.创建或获取该任务中创建Loader作业的业务用户和密码.确保用户已授权访问作业 ...
- python检测文件夹中新增文件_python检测文件夹变化,并拷贝有更新的文件到对应目录的方法...
检测文件夹,拷贝有更新的文件到对应目录 2016.5.19 亲测可用,若有借鉴请修改下文件路径: 学习python小一个月后写的这个功能,属于初学,若有大神路过,求代码优化~ newcopy.py: ...
- java解压服务器文件夹,java获取远程服务器上的文件夹
java获取远程服务器上的文件夹 内容精选 换一换 安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发.其他类型服务器可跳过此步骤.本文以Windows Server 2016为例, ...
- 请问苹果x是如何建文件夹_苹果x怎么创建文件夹相关阅读-苹果x怎么创建文件夹文章阅读-123文学网...
在日常的生活中,我们会把手机相关的APP放在同一个文件夹下.那么苹果手机怎么设置文件夹呢?下面就让afU123小编来告诉大家吧,欢迎阅读. 1.打开苹果手机. 2.一直按着一个软件的图标,知道图标开始 ...
最新文章
- golang源码分析:调度器chan调度
- pandas 增加列
- 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
- python3 递归函数的理解
- HDU 1964 Pipes
- python内置高阶函数_map()函数~~内置的高阶函数
- 机器人伪装成人类在 GitHub 上为开源项目修复 bug
- Prolog 语言入门(一)
- Android开发 Android Studio2.0 教程从入门到精通Windows版 - 入门篇
- redis面试常问--缓存穿透
- opendss视频教程
- 最新的python是哪个版本的好_书声琅琅:Python哪个版本好用
- 大家快来看看,心中无女人,写文章自然神。
- 过滤文本中的中英文标点符号、字母、数字、表情
- 数据分析可视化08 案例 2:历史数据变化趋势图设计
- 电影《不夜城》的主题曲:金城武、山本未来主演
- 解决Error java 错误 不支持发行版本
- ubuntu下命令行禁用笔记本触摸板
- C语言求1000以内水仙花数
- 计算机的随想作文500字,新年随想作文500字(通用5篇)