问答文章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

我来回答

2个回答

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

 

#include<stdio.h>
void Printmonth()//这里就不需要传参了,因为y,m都在函数内部定义完了,不需要外界传递给他
{
 int c,i,j,a,w;//这里只需要知道每个月的第一天对应的星期就可,因而不需要定义数组
 int y,m,s,b=1,d,n,g;
 printf("《显示月历》输入年月:");
 scanf("%d%d",&y,&m);
 printf("           第%d年,%d月月历:   \n",y,m);//这里如果加上&就意味着输出y和m的地址
 printf("周日\t周一\t周二\t周三\t周四\t周五\t周六");     
 for(a=1;a<=31;a++)
 { 
  if (m==1) c=a;   
  else if (m==2) c=31+a;   
  else if (m==3) c=31+28+a;   
  else if (m==4) c=31+28+31+a;   
  else if (m==5) c=31+28+31+30+a;   
  else if (m==6) c=31+28+31+30+31+a;   
  else if (m==7) c=31+28+31+30+31+30+a;   
  else if (m==8) c=31+28+31+30+31+30+31+a;   
  else if (m==9) c=31+28+31+30+31+30+31+31+a;   
  else if (m==10) c=31+28+31+30+31+30+31+31+30+a;   
  else if (m==11) c=31+28+31+30+31+30+31+31+30+31+a;   
  else if (m==12) c=31+28+31+30+31+30+31+31+30+31+30+a;   
  if (m>2)   
  {
   if (y%100==0) 
   {
    if (y%400==0)c=c+1;
   }   
   else if (y%4==0)               
    c=c+1;   
  }   
 // s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c; 
 //蔡勒公式:
 //W=y+[y/4]+[c/4]-2*c+[26*(m+1)/10]+d-1
 //W:是星期
 //C:世纪-1,其中,世纪:公元是年份前两位+1
    //Y:年(年份后两位数)
    //M:月(m>=3 && m<14) 即某年的1、2月要看作上一年的13、14月来计算,比如2003年的1月1日要看做是2002年的13月1日来计算
 //D:日 
 //[]:代表取整
 //结果W%7为星期几;
 //如果w<0,则将w+7操作
 
  if(m<3)
  {
   y-=1;
   m+=12;
  }
  d=1;//此处计算月份的第一天的星期
  n=y/100;
  g=y%100;
  s=g+g/4+n/4-2*n+26*(m+1)/10+d-1;
  w=s%7;
  if(w<0)w+=7;
 }   
 /*if(w==1)
 {
  for(i=1;i<=6;i++)
  {
*/
 printf("\n");
 if(w!=6)
 {
  for(i=0;i<w;i++)
  {
   printf("\t");
   b++;
  }
 }
 for(j=1;j<=c;j++,b++)
 {
  printf("%d\t",j);
  if(b%7==0)printf("\n");
 }
}

int main()
{
 Printmonth();
}

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

你可以用ds1302啊 设置好要的日期 掉电也能计时的,只要读它的数据不用计算都可以。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 药店店长的工作计划管理方法? 魅族note5怎么把软件和数据搬到内存卡 输入某月第一天是星期几和该月天数,打印该月月历。用C语言编译 三星note5能扩展内存 c语言设计万年历。输年判断闰年 输年月日判断星期几 输年打出12个月日历 输月打出该月日历用多个函数实现 三星note5可以外加内存卡吗。 魅蓝note5能插扩展内存卡吗? 三星Note5支持扩展储存卡吗?支持多大的储存卡 怎样设计一个C语言程序打印指定年份的公历表和农历表(包括24节气) C语言程序设计:用户输入年月,程序按周日~周六顺序输出月历,在日期数字下方一行增加公历节假日的名称。 三星Note5 国行版 支持扩展内存吗?据说有一个卡槽是兼容存储卡的 .C语言编程“已知2000年1月1日为星期六,任意输入一年份,打印出其月历” C语言程序设计;&quot;已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历&quot; 怎么设计啊,速求老师 三星note5会支持扩展储存吗 计算机应用技术都学什么课程?毕业之后可以从事什么职业? c语言:关于某年某月的月历打印制作 三星note5能插扩展内存卡吗 C语言打印月历 怎样编写函数啊 C语言中打印月历 c语言 输出月历 世界上线上教学最早是什么时候提出的? 在线教育发展过程 请问中午睡觉起来感觉头晕,胸闷,喘不过气来是什么原... 冻结了怎么解冻 给女朋友表白的感动话-深情表白的一段话 交友app哪个靠谱?哪里有好一点的征婚网站 表白情话最暖心一段话有哪些? 轮胎是日期朝外还是红点朝外 刚买的米其林LC的,生产日期是不是标注在轮胎的外侧? 米其林xm2轮胎日期在内侧还是外侧看 哈德斯菲尔德大学学历认证? 英国哈德斯菲尔德大学留学生拿不到master学位,回国还能进行学历学位认证吗? 我在英国Unive 如何分辨车轮胎内外侧? 3 +1北京联合大学与英国哈德斯菲尔德大学交换生项目,好拿毕业证么,毕业论文是在英国写么 英国哈德斯菲尔德大学留学就读的硕士论文没通过不能毕业该怎么办? 英国哈德斯菲尔德大学挂科diploma怎么认证成degree? 英国哈德斯菲尔德大学留学生本科阶段考试挂科导致不能顺利毕业该怎么办? 哈德斯菲尔德大学的学校资源 想去英国读研 有经验的学长学姐们给点建议! 哈德斯菲尔德大学研究生一般几月毕业?