要求:输入年份输出这一年的日历
注意:公元1900年一月一日是星期一,这一年是平年
思路:获取输入的年份y,首先获取从公元1900年到(y-1)年
的天数,然后获得该年份的第一天是星期几,进行输出。
这次实例,我花费了很长的时间,最后发现错误的原因出在在求某一年是闰年还是平年的时候,我没有田间return语句,也就是没有返回值,真是醉了。
我感觉这次我写代码的时候一点感觉都没有。哎,真是的,一颗老鼠屎,坏了一锅粥啊。
下面是我的代码:
#include <stdio.h>
#define BEGIN 1900
/**
* 要求:输入年份输出这一年的日历
* 注意:公元1900年一月一日是星期一,这一年是平年
* 思路:获取输入的年份y,首先获取从公元1900年到(y-1)年
* 的天数,然后获得该年份的第一天是星期几,进行输出。
*
* @brief main
* @return
*/
int isRun(int year);
int main(void)
{
int year;
int days = 0;
char **weeks[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
int runPing[2][12] = {
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31},
};
printf("Please enter the year:\n");
scanf("%d",&year);
int m;
/** 计算从1900年到(year-1)的天数 **/
for(m = BEGIN;m < year;m++){
if(isRun(m)){
days += 366;
}else{
days += 365;
}
}
int which = 0;
if(isRun(year)){
which = 1;
}else{
which = 0;
}
for(m = 0;m < 12;m++){
printf("MONTH:%d\n",m+1);
int week = days % 7;
if(week == 0){
week = 7;
}else{
week += 1;
}
int i;
for(i = 0;i < 7;i++){
printf("%s\t",weeks[i]);
}
printf("\n");
for(i = 1;i<week;i++){
printf("\t");
}
int n = 0;
for(n = 0;n < runPing[which][m];n++){
if(n%7 == (7-week+1)){
printf("\n");
}
printf("%d\t",n+1);
}
printf("\n\n");
days += runPing[which][m];
}
return 0;
}
/**
* @brief isRun 用于判断年year是否是闰年
* @param year 被判断的那一年
* @return
* 0 - 表示是平年
* 1 - 表示是闰年
*/
int isRun(int year){
int run = 0;
/**
* 闰年的判断条件:
* 1:能够被400整除
* 2:能够被4整除,但是不能被100整除
*/
if(((year%4==0)&&(year%100!=0)) || (year%400==0)){
run = 1;
}else{
run = 0;
}
return run;
}
下面是我的程序的输出:
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
用C实现万年历。。。。。。。。。。。。。。
程序可以实现如下三种功能: 求某个日期对应的星期 求某年某月有的天数 输出某年的日历.
基于C语言实现的万年历完整源码 基于C语言实现的万年历完整源码 基于C语言实现的万年历完整源码 基于C语言实现的万年历完整源码 基于C语言实现的万年历完整源码 基于C语言实现的万年历完整源码 基于C语言实现的...
此文件中包含了stm32_rtc.c,stm32_rtc.h用内置的rtc计算器实现万年历的相关函数,函数主要实现年月日时分秒周的计算,其计数值存放在bkp存储区中。
c语言编写的万年历,简单明了,公元后的可以显示,输入要查询的年份即可!
输入一个年份(1-3000),然后显示12个月的月历,如屏幕显示不下,则提供翻页功能,用C语言和VC++6.0实现的
模仿参考小demo来加深一下基础知识,实现年历,月历,日历的输出,通过这些来掌握一些基本的知识。
89C52单片机,DS1302时钟芯片; 实现的万年历 89C52单片机,DS1302时钟芯片; 实现的万年历
基于stc89c52编写的万年历,LCD1602能显示年月日、当前时间、当前的温度和星期。利用DS18B20采集环境温度和DS1302计时,四个按键可以实现对时间的设置,温度报警设置,闹钟的设置。
信息最全的农历万年历,可以计算1901-2300年的信息,有整齐美观的日历格式打印。 公历信息包括日期、星期、节日。 农历信息包括二十四节气时间点、闰月、大小月、三伏、九九、干支、年号、农历节假日、属相等。 还...
实现对单片机内部实时时钟的,存储,上电累加等。
C语言小白程序万年历,可视化编程,需要easyx插件,C语言小案列
简单易懂的C语言单片机万年历 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM存储空间,能于3V超低压工作,资源较少但价格便宜,性价比高,十分适合本实验使用。 采用LCD液晶显示屏,相较于数码管...
基于PIC单片机的万年历的设计,这是本人花好大力写的课程设计,由于老师要求严,成品可达本科毕业论文水平!当然发上来的不是终稿,但也差不多了!
用c编写的万年历 实现多功能万年历功能 用c编写的万年历 实现多功能万年历功能
可以实现简单的换肤,闹钟,日历,纪念日,整点报时等功能。支持vs08
(1) 闰年判断模块。该模块用于输入一个年份能够判断该年是闰年还是平年。 (2) 星期计算模块。该模块主要是输入日期能够判断该日期是星期几。 (3) 月历查询模块。该模块是系统的核心模块,是用来显示...
该压缩包内有液晶显示万年历C源代码,可以通过串口校准时间,同时显示温度数据,并且有课程设计文档。液晶显示内容为中文。
万年历的C实现设计课设论文.doc
输入年份 实现万年历查询 .