问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言:关于某年某月的月历打印制作

发布网友 发布时间:2022-05-25 17:06

我来回答

1个回答

热心网友 时间:2023-11-23 05:04

#include <stdio.h>
int main(void)
{
int i,j,k,m,mon,y;
int day(int n,int m);//函数的声明
int month(int n,int y);
int year(int y);
printf("Please input one year after year 1900 you want to know:");
scanf("%d",&y);
if(y<1900)//我以1900年为基础算的,所以1900年以前查不了。
printf("I can't tell you this year ^_^\n");
else
{
i=year(y);//年处理函数,判断是否是闰年,这个函数的返回值是本年的第一天是周几
printf("The year is %d \n",y);
for(mon=1;mon<=12;mon++)
{
j=month(mon,y);//月处理函数,这个函数返回的是每个月需要扣除的天数。
k=day(i,j);//日处理函数,需要传递的参数是这个月的第一天是周几i,还有这个月需要扣除的天数j。
i=k;
}
}
return 0;
}

int year(int y)//判断是否是闰年
{
int x,i,j=0;
for(i=1900;i<y;i++)//在这里,我用的是1900年为基础来推断的,如果想查得更久远点,可以以公元元年为基础
{
if((i%4==0)&&(i%100!=0))
j++;
else if(i%400==0)
j++;//只要是闰年j就加1,这个是为了算天数的时候补上闰年多的那天
}
x=((y-1900)*365+1+j)%7;//这个就是判断查询年份1月号是周几
return x;//返回的这个x就是本年第一天是周几
}

int month(int n,int y)//这个函数是用来处理月份的
{
printf("============%d.%d=============\n",y,n);
if(n==1||n==3||n==5||n==7||n==8||n==10||n==12)//我设置每个月有31天,所以这几个月返回的需要扣除的天数就是0
return 0;//返回的是需要扣除的天数,这几个月不需要扣除
else if(n==4||n==6||n==9||n==11)
return 1;//这几个月需要扣除一天
else if(n==2)//2月真是麻烦,需要单独处理。如果是闰年就扣除2天,如果不是就扣除3天
{
if((y%4==0)&&(y%100!=0))
return 2;
else if(y%400==0)
return 2;
else return 3;
}
}

int day(int n,int m)//这个是日处理函数
{
int i,day[31],k;
for(i=0;i<31;i++)
day[i]=i+1;
printf("Sun Mon Tues Wed Thu Fri Sat\n");//打印出上面的周数,英问简写好象有错误,大家自己看下就行了
if(n<7)
for(i=0;i<n;i++)
printf(" ");
for(i=0;i<31-m;i++)
{
printf("%-5d",day[i]);
if((i+1+n)%7==0)//每7天就换一行重新开始输出
printf("\n");
}
printf("\n");
k=(31-m+n)%7;
return k;
}
以前写的一个小程序,你参考一下吧。

参考资料:http://blog.chinaunix.net/u/31780/showart_246173.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 三星note5能插扩展内存卡吗 C语言打印月历 怎样编写函数啊 C语言中打印月历 c语言 输出月历 计算机应用技术的毕业设计 计算机毕业设计不会怎么办 课程翻译,英文翻译成中文 operations management 答案是5.85,求过程~~ Operation Management问题 经营的英语翻译 经营用英语怎么说 “公司运营管理“怎么翻译阿? 关于英国纽卡斯尔大学 Operations Management Logistics and Accounting 专业 我们平常说的经营一家店或公司的经营英文名次是Management还是Operation? operation and management是什么意思 急求!各位大侠,谁能告诉我运营管理(operations management)和供应链管理(supply chain management)的区 预测一下07年黑龙江高考分数线吧 operationmanagement和marketing哪个比较好一点 被骗了300元报警有用吗 什么是Operations_management? 2016黑龙江省高考排名600分排多少 计算机应用技术都学什么课程?毕业之后可以从事什么职业? 三星note5会支持扩展储存吗 C语言程序设计;&quot;已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历&quot; 怎么设计啊,速求老师 .C语言编程“已知2000年1月1日为星期六,任意输入一年份,打印出其月历” 三星Note5 国行版 支持扩展内存吗?据说有一个卡槽是兼容存储卡的 C语言程序设计:用户输入年月,程序按周日~周六顺序输出月历,在日期数字下方一行增加公历节假日的名称。 怎样设计一个C语言程序打印指定年份的公历表和农历表(包括24节气) 三星Note5支持扩展储存卡吗?支持多大的储存卡 魅蓝note5能插扩展内存卡吗? 三星note5可以外加内存卡吗。 c语言设计万年历。输年判断闰年 输年月日判断星期几 输年打出12个月日历 输月打出该月日历用多个函数实现 三星note5能扩展内存 输入某月第一天是星期几和该月天数,打印该月月历。用C语言编译 魅族note5怎么把软件和数据搬到内存卡 药店店长的工作计划管理方法? c语言中的月历制作 世界上线上教学最早是什么时候提出的? 在线教育发展过程 请问中午睡觉起来感觉头晕,胸闷,喘不过气来是什么原... 冻结了怎么解冻