c语言万年历的原理,[原创] C语言实现:万年历(1)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
经过近这几天的努力,终于写完了这个"万年历"的程序了,共享一下, 特别是同"勉"共享
[需求]
请打印出任意年份的日历
[代码]
代码
#include
#define LMonth 31
#define SMonth 30
#define VMonth 28
typedef enum {
Sun,
Mon,
Jue,
Wed,
Thu,
Fri,
Sat
} WEEK;
typedef enum {
January = 1,
February,
Match,
Apirl,
May,
June,
July,
August,
September,
October,
November,
December
} MONTH;
void printMonHead(void)
{
printf(" Sun Mon Jue Wed Thu Fri Sat\n");
}
void printMonth(const WEEK firstDay, int length )
{
WEEK weekDay = firstDay % 7;
int i;
printMonHead();
for (i=0; i
{
printf(" ");
}
for(i=1;i<=length;++i)
{
weekDay = (++weekDay)%7;
printf("%7d", i);
if(weekDay==0) printf("\n");
}
printf("\n");
}
int isLeapYear(const int yr)
{
return ( yr%( yr%100 ? 4:400) ? 0 : 1);
}
int getYearDay(const int year)
{
int lastYear = year-1;
int yearNum = lastYear-1899;
int walker,counter=0;
for(walker=1900; walker < year; ++walker)
{
if(isLeapYear(walker)==1)
++counter;
}
return (365*yearNum+counter+1)%7;
}
void printYear(const int y)
{
WEEK yDay = getYearDay(y);
int vDay = isLeapYear(y);
int monWeeks[13];
int monLen [13];
monLen[0]=0;
monLen[January]=31; monLen[February]=28+vDay; monLen[Match]=31;
monLen[Apirl]=30; monLen[May]=31; monLen[June]=30;
monLen[July]=31; monLen[August]=31; monLen[September]=30;
monLen[October]=31; monLen[November]=30; monLen[December]=31;
monWeeks[0]=0;
monWeeks[January] = yDay;
monWeeks[February] = ((monWeeks[January] +monLen[January] )%7);
monWeeks[Match] = ((monWeeks[February] +monLen[February] )%7);
monWeeks[Apirl] = ((monWeeks[Match] +monLen[Match] )%7);
monWeeks[May] = ((monWeeks[Apirl] +monLen[Apirl] )%7);
monWeeks[June] = ((monWeeks[May] +monLen[May] )%7);
monWeeks[July] = ((monWeeks[June] +monLen[June] )%7);
monWeeks[August] = ((monWeeks[July] +monLen[July] )%7);
monWeeks[September] = ((monWeeks[August] +monLen[August] )%7);
monWeeks[October] = ((monWeeks[September] +monLen[September] )%7);
monWeeks[November] = ((monWeeks[October] +monLen[October] )%7);
monWeeks[December] = ((monWeeks[November] +monLen[November] )%7);
c语言万年历的原理,[原创] C语言实现:万年历(1)相关推荐
- 单片机C语言PWM程序原理,单片机C语言程序设计:用 ADC0808 控制 PWM 输出
/* 名称:用 ADC0808 控制 PWM 输出 说明:使用数模转换芯片 ADC0808,通过调节可变电阻 RV1 来调节脉冲宽度, 运行程序时,通过虚拟示波器观察占空比的变化. */ #inclu ...
- 设计c语言程序能否订火车票,C语言-购买火车票原理
原标题:C语言-购买火车票原理 01 C语言-购买火车票原理 //今晚内容:C语言-购买火车票原理 //讲课老师:范志军 #include #include int a=50;//定义50张火车票 H ...
- 易语言反截图_[原创]反截图技术的原理及简单实现
前言 该文章将邀请世界第一的编程语言-易语言来为我们演示. 吹逼 随着好玩的游戏越来越多,盖佬人才越来越突出,好玩的游戏+一款牛逼的WG成为了一个老挂逼的日常生活.鲁迅说过'有乐同享,有难同当',于是 ...
- C语言函数调用的原理
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105088660 C ...
- c语言万年历查询程序代码,C语言小程序实现万年历
分享一个简单的小程序,看看如何打印万年历吧~ 程序打开时时这样的,输入一个年份: 比如输入2016再回车,效果如下: 下面我们来看看实现这个程序的代码吧: #include #include #def ...
- 用linux下的C语言编程万年历,shell编程万年历月历和对应c语言程序.docx
shell编程万年历月历和对应c语言程序.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网 ...
- md5加密算法原理及其GO语言实现
md5加密算法原理及其GO语言实现 MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值 ...
- 通信原理实验c语言,基于LabVIEW软件的通信原理实验教学平台设计方案
1.引言本文引用地址:http://www.eepw.com.cn/article/201809/388499.htm <通信原理>课程是我校通信工程专业.电子信息工程专业的一门专业基础课 ...
- ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)
决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...
- c语言 x16 x15 x2 1,CRC算法原理及C语言实现
CRC算法原理及C语言实现 摘 要 本文从理论上推导出CRC算法实现原理,给出三种分别适应不同计算机或微控制器硬件环境的C语言程序.读者更能根据本算法原理,用不同的语言编写出独特风格更加实用的CRC计 ...
最新文章
- 【Linux 内核】Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )
- 02-CA/TA编程:aes demo
- linuxpython23同时_linux上安装python3同时保留python2
- vue 入门notes
- 知名互联网公司系统架构图[第3期]
- 您已登录了一个相同的QQ账号,不能重复登录”的解决办法
- windows下安装TensorFlow(Win8 + Anaconda4.4 python3.6)
- NB-IoT蜂窝窄带物联网概念
- Using platform encoding (UTF-8 actually) to copy filtered resources错误
- 景深决定照相机什么特性_浅析决定景深之四大因素
- JZOJ 3859.【NOIP2014八校联考第3场第2试10.5】孤独一生(sprung)
- Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!
- python基于flask_sockets实现WebSocket
- python计算三个点构成的三角形的外切圆圆心坐标及半径
- linux6.6卸载防火墙,Linux-centos6.8下关闭防火墙
- 关于char是否能表示一个中文
- 什么是render函数?什么时候会用到render函数?
- fitbit android app,Fitbitapp下载_Fitbit安卓版下载[生活服务]-下载之家
- 输入一个数字,在数组中查询是否存在,如果存在则显示其索引
- 7-5 直捣黄龙 单源最短路 映射的使用和遍历