c语言编写的日历
输入年份如2013,显示2013年的日历。
思路:
1.查找每个月1号是星期几(这里利用了1990年1月1号是星期一)
计算年份如2013年1月1号到1990年1月1号有Days天,Day%7得到星期索引WeekDay
2.每个月日历打印六行内容,每行七个日期,不是日历内容打印空格
#include <stdio.h> #define BOOL int
#define TRUE 1
#define FALSE 0 int GetWeekDay(int year, int month, int day); /* 获取某一年,某一月,某一天是星期几 */
void PrintCalendar(int year); /* 打印第year年的日历 */
BOOL IsLeap(int year); /* 判断是否为闰年 */ int main()
{
int year;
// char* week[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; /* 字符指针数组 */ // int WeekDay = GetWeekDay(2000, 1, 1); // printf("今天是星期:%s\n", week[WeekDay]); printf("请输入要查询的年份:\n"); scanf("%d", &year); PrintCalendar(year); return ;
}
/*-------------------------------------------------------------------------
功能:获取year年,month月,day天是星期几 这里利用了1900年1月1号是星期一
输入:年份year,月份month日期day
输出:星期索引
---------------------------------------------------------------------------*/
int GetWeekDay(int year, int month, int day)
{
int count, Week_Index,i;
int Day[] = {, , , , , , , , , , , , }; /* 每月的天数 */
int MonthAdd[] = {, , , , , , , , , , , }; /* 每月前所有月份的天数之和 */ count = MonthAdd[month - ]; /* 月份month前面所有月份的天数 */
count = count + (year - ) * ;
count = count + day; /* 与1900年1月1号相差多少天 */
if(month > && IsLeap(year)) /* 月份month超过2月份 且是闰年 */
count ++;
for(i = ; i < year; i ++)
{
if(IsLeap(i)) /* 如果是闰年 */
{
count ++;
}
} Week_Index = count % ; return Week_Index;
}
/*------------------------
功能:打印year年的日历
输入:year年份
输出:year年的日历
--------------------------*/
void PrintCalendar(int year)
{
int i, j, k;
int WeekDay;
int Day[] = {, , , , , , , , , , , , };
int MonthDays; for(i = ; i < ; i ++) /* 依次打印每个月份的日历 */
{
int temp = ;
MonthDays = Day[i];
if(IsLeap(year) && i == ) /* 闰年第二个月为29天 */
MonthDays = ;
WeekDay = GetWeekDay(year, i, ); /* 获取每个月1号 星期索引 */
printf("%d月\n", i);
printf("日\t一\t二\t三\t四\t五\t六\n");
for(j = ; j <= ; j ++) /* 每个月日历打印六行 */
{
if(WeekDay != )
{
printf("\t");
WeekDay --;
if(j % == )
printf("\n");
continue;
}
if(MonthDays > ) /* 每个月的日历 */
{
printf("%d\t", temp);
temp ++;
if(j % == )
printf("\n");
MonthDays --;
}
else
printf("\t");
}
printf("\n");
}
}
/*--------------------------
功能:判断year是否为闰年
输入:年份year
输出:闰年TRUE平年FALSE
---------------------------*/
BOOL IsLeap(int year)
{
BOOL result;
if(((year % == ) && (year % == )) || ((year % != ) && (year % == ))) /* 闰年 */
{
result = TRUE;
}
else
result = FALSE; return result;
}

c语言编写的日历的更多相关文章
- c语言的简易日历
用c语言编写的简易日历,代码如下: #include <stdio.h> int main(int argc, const char * argv[]) { // insert code ...
- 基于php基础语言编写的小程序之计算器
基于php基础语言编写的小程序之计算器 需求:在输入框中输入数字进行加.减.乘.除运算(html+php) 思路: 1首先要创建输入数字和运算符的输入框,数字用input的text属性,运算符用sel ...
- 如何用C语言编写病毒‘
怎样用C语言编写病毒在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现.[Abstract] This paper introduce the charateristic ...
- 选择使用c语言编写的phalcon框架
使用这个框架,我总结了如下几点考虑 1.这个框架速度快.纯c语言编写的框架,速度都比php框架快,省去了中间环节.当然,使用它不仅仅是性能考虑.因为如果为了解决php性能问题,完全可以有很多种方式,不 ...
- [改善Java代码]易变业务使用脚本语言编写
建议16: 易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP.Ruby.Groovy.JavaScript等,这些“入侵者”都有一个共同特征:全是同一类语言—脚本语言,它们 ...
- 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...
- 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取
本文跟着上一篇文章继续写,上一篇文章的链接 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 一.随便说说 获取文件系统使用情况的思路和上一篇获取主要系统是 ...
- C语言编写的bmp读写程序
C语言编写的bmp读写程序 建议先把bmp的数据存储格式了解下 <span style="font-size:16px;">#include "Windows ...
- 使用C语言编写windows服务一般框架
原文:使用C语言编写windows服务一般框架 编写windows服务和编写windows应用程序一样,有一些回调函数必须填写且向windows 服务管理器(service manager)进行注册, ...
随机推荐
- hadoop-集群管理(2)——内存设置
http://www.cnblogs.com/yuechaotian/archive/2013/03/08/2949607.html 1. 内存 hadoop为各个守护进程(namenode,seco ...
- Symantec System Recovery
目的:备份系统,备份文件,裸机恢复,异机恢复等 工具:http://bbs.kafan.cn/thread-1800182-1-1.html 下载地址:http://pan.baidu.com/s/1 ...
- 003Linux网络配置
基于VMware中的Linux系统: 1.VMware提供了三种网络工作模式: (1)bridged(桥接模式) 桥接模式,顾名思义,得有桥,谁充当桥呢?当然是主机,安装了虚拟机的主机,充当的是虚拟机 ...
- Android IOS WebRTC 音视频开发总结(十五)-- 培训课程大纲
最近在给公司做内部培训,主要是关于即时通讯和移动视频通话,包括android与android,ios与ios,android与ios,以及手机与PC. ------------------------ ...
- javaSE第二十二天
第二十二天 312 1:登录注册IO版本案例(掌握) 312 2:数据操作流(操作基本类型数据的流)(理解) 313 (1)定义: 313 (2)流对象名称 313 (3 ...
- 第四章_PHP基本语法
1.第一个PHP程序 //弱爆了有木有 <?php echo "Hello PHP!'; ?> 2.PHP共支持8种基本数据理性,包括4种标量类型:boolean(布尔型).in ...
- Centos更新yum packet源
在使用Centos时,常常会遇到使用yum安装某些系统依赖包,特别是第三方软件库(如openstack软件库)时,无法找到包源.因此,需要将Centos的yum源进行更新,扩展,以便可以通过yum的方 ...
- Dev的DocumentManager 相关问题
1.改变DocumentManager包含的窗体的排列方式 if (this.documentManager1.View.Type != ViewType.NativeMdi) { this.docu ...
- 画画板--第三方开源--DrawableView
Android上的第三方开源DrawableView支持手写,类似于写字板.DrawableView支持改变画笔颜色,画笔线条粗细,画布的手势缩放和拖曳显示部分区域.并最终支持将手绘的图保存到本地.在 ...
- 【译】Spark官方文档——Spark Configuration(Spark配置)
注重版权,尊重他人劳动 转帖注明原文地址:http://www.cnblogs.com/vincent-hv/p/3316502.html Spark主要提供三种位置配置系统: 环境变量:用来启动 ...