该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

经过近这几天的努力,终于写完了这个"万年历"的程序了,共享一下, 特别是同"勉"共享

[需求]

请打印出任意年份的日历

[代码]

代码

#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)相关推荐

  1. 单片机C语言PWM程序原理,单片机C语言程序设计:用 ADC0808 控制 PWM 输出

    /* 名称:用 ADC0808 控制 PWM 输出 说明:使用数模转换芯片 ADC0808,通过调节可变电阻 RV1 来调节脉冲宽度, 运行程序时,通过虚拟示波器观察占空比的变化. */ #inclu ...

  2. 设计c语言程序能否订火车票,C语言-购买火车票原理

    原标题:C语言-购买火车票原理 01 C语言-购买火车票原理 //今晚内容:C语言-购买火车票原理 //讲课老师:范志军 #include #include int a=50;//定义50张火车票 H ...

  3. 易语言反截图_[原创]反截图技术的原理及简单实现

    前言 该文章将邀请世界第一的编程语言-易语言来为我们演示. 吹逼 随着好玩的游戏越来越多,盖佬人才越来越突出,好玩的游戏+一款牛逼的WG成为了一个老挂逼的日常生活.鲁迅说过'有乐同享,有难同当',于是 ...

  4. C语言函数调用的原理

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105088660 C ...

  5. c语言万年历查询程序代码,C语言小程序实现万年历

    分享一个简单的小程序,看看如何打印万年历吧~ 程序打开时时这样的,输入一个年份: 比如输入2016再回车,效果如下: 下面我们来看看实现这个程序的代码吧: #include #include #def ...

  6. 用linux下的C语言编程万年历,shell编程万年历月历和对应c语言程序.docx

    shell编程万年历月历和对应c语言程序.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网 ...

  7. md5加密算法原理及其GO语言实现

    md5加密算法原理及其GO语言实现 MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值 ...

  8. 通信原理实验c语言,基于LabVIEW软件的通信原理实验教学平台设计方案

    1.引言本文引用地址:http://www.eepw.com.cn/article/201809/388499.htm <通信原理>课程是我校通信工程专业.电子信息工程专业的一门专业基础课 ...

  9. ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)

    决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...

  10. c语言 x16 x15 x2 1,CRC算法原理及C语言实现

    CRC算法原理及C语言实现 摘 要 本文从理论上推导出CRC算法实现原理,给出三种分别适应不同计算机或微控制器硬件环境的C语言程序.读者更能根据本算法原理,用不同的语言编写出独特风格更加实用的CRC计 ...

最新文章

  1. 【Linux 内核】Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )
  2. 02-CA/TA编程:aes demo
  3. linuxpython23同时_linux上安装python3同时保留python2
  4. vue 入门notes
  5. 知名互联网公司系统架构图[第3期]
  6. 您已登录了一个相同的QQ账号,不能重复登录”的解决办法
  7. windows下安装TensorFlow(Win8 + Anaconda4.4 python3.6)
  8. NB-IoT蜂窝窄带物联网概念
  9. Using platform encoding (UTF-8 actually) to copy filtered resources错误
  10. 景深决定照相机什么特性_浅析决定景深之四大因素
  11. JZOJ 3859.【NOIP2014八校联考第3场第2试10.5】孤独一生(sprung)
  12. Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!
  13. python基于flask_sockets实现WebSocket
  14. python计算三个点构成的三角形的外切圆圆心坐标及半径
  15. linux6.6卸载防火墙,Linux-centos6.8下关闭防火墙
  16. 关于char是否能表示一个中文
  17. 什么是render函数?什么时候会用到render函数?
  18. fitbit android app,Fitbitapp下载_Fitbit安卓版下载[生活服务]-下载之家
  19. 输入一个数字,在数组中查询是否存在,如果存在则显示其索引
  20. 7-5 直捣黄龙 单源最短路 映射的使用和遍历

热门文章

  1. activeMq安装及原理分析
  2. Shark简介、部署及编译小结
  3. 《Thinkphp5使用Socket服务》 入门篇
  4. 初探Windows用户态调试机制
  5. mysql lamp 配置命令总结
  6. Struts2返回JSON数据的具体应用范例
  7. SPOJ QTREE4 Query on a tree IV ——动态点分治
  8. MySQL的备份与还原
  9. HttpContext.Current
  10. matlab中modred,计算机仿真技术(中南大学)3系统模型及转换.ppt