想用c语言写一个关于日历的小程序,但是不知道如何计算星期几的问题...
发布网友
发布时间:2022-04-29 04:23
我来回答
共4个回答
热心网友
时间:2022-04-24 14:19
公历一年一月一日是星期一,算出这一天和公历一年一月一日之间的天数就可以了
还有一个算法就是,400年一个循环,也就是401年一月一日也是周一这样可以少算很多天
再就是更简单的算法就是,一年是365天,364天正好是7的倍数,也就是一年多出一天来,这样再把闰年的那一天加上就可以了,这样可以算出每年的第一天是周几,
year%=400; //这是去掉400年的循环
z=(year+year/4-year/100)%7; //这样就可以算出
for(m=1;m<mouth;m++)
//这是算出一年内的到这个月之前的天数,最后再加上这个月的那几天就可以了
{
if(i=1||i==3||i==5||i==7||i==8||i==10||i==12)
d+=31;
if(i==4||i==6||i==9||i==11)
d+=30;
if(i==2)
if(year%4==0&&year%100==0||year%400!=0)
d+=29
else
d+=28
}
热心网友
时间:2022-04-24 15:37
这个公式是很好的啊,有点注意就行了
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数+1,m表示月份数,y表示年数。
在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算!!!
热心网友
时间:2022-04-24 17:12
//正好前几天弄过一个计算任意年月日是星期几的小程序
//是以2000年1月1日为参考日计算的,该日是星期六
#include <stdio.h>
int isly(int year)
{
return ((!(year%4))&&(year%100)||(!(year%400)));
}
int mtod(int m)
{
int n=0;
switch(m)
{
case 1:n=31;break;
case 2:n=59;break;
case 3:n=90;break;
case 4:n=120;break;
case 5:n=151;break;
case 6:n=181;break;
case 7:n=212;break;
case 8:n=243;break;
case 9:n=273;break;
case 10:n=304;break;
case 11:n=334;break;
default:n=0;
}
return n;
}
int dmax(int y,int m,int d)
{
if(m==2)
{
return 28+(isly(y));
}
if((m==1||m==3||m==5||m==7||m==8||m==10||m==12))
return 31;
return 30;
}
int main()
{
int y,m,d;
int lyn=0;
int dn=0;
char* cday[]={"六","日","一","二","三","四","五"};
printf("输入年月日:");
do
{
scanf("%d%d%d",&y,&m,&d);
if(m<13&&m>0&&d>0&&d<=dmax(y,m,d))
break;
else
printf("该日期不存在,请重新输入:");
}
while(1);
if(y>=2000)
{
for(int i=2000;i<=y;i++)
{
lyn+=isly(i);
}
if(isly(y))
{
if(m<2||(m==2&&d<=29))
lyn--;
}
dn=(y-2000)*365+mtod(m-1)+d+lyn-1;
printf("%d年%d月%d日是星期%s\n",y,m,d,cday[dn%7]);
}
if(y<2000)
{
for(int i=y;i<2000;i++)
{
lyn+=isly(i);
}
if(isly(y))
{
if(m>2)
lyn--;
}
dn=(2000-y)*365-mtod(m-1)-d+lyn+1;
printf("%d年%d月%d日是星期%s\n",y,m,d,cday[(7-dn%7)%7]);
}
return 0;
}
热心网友
时间:2022-04-24 19:03
我的曾经的做法:我先确定一天是星期几,比如2011.11.11是星期五,那么计算当天与2011.11.11相差多少天,△day%7,如果为0,那么今天就是星期五,以此类推!
想用c语言写一个关于日历的小程序,但是不知道如何计算星期几的问题...
公历一年一月一日是星期一,算出这一天和公历一年一月一日之间的天数就可以了 还有一个算法就是,400年一个循环,也就是401年一月一日也是周一这样可以少算很多天 再就是更简单的算法就是,一年是365天,364天正好是7的倍数,也就是一年多出一天来,这样再把闰年的那一天加上就可以了,这样可以算...
...显示当年当月日历的小程序,本人菜鸟,请教各位前辈。重重有赏_百度知...
c = calendar.Calendar(1)print '-- %d --'%year for w in c.monthdatescalendar(year,month)[:7:]:print '|'.join([d.strftime('%m-%d') for d in w])
用Android studio做一个可以运行的小程序,闹钟也行,然后可以连到手机...
//设置日历的时间,主要是让日历的年月日和当前同步 calendar.setTimeInMillis(System.currentTimeMillis());//设置日历的小时和分钟 calendar.set(Calendar.HOUR_OF_DAY, h);calendar.set(Calendar.MINUTE, m);//将秒和毫秒设置为0 calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND...
我现在是大一计算机新生,请问我怎么学习C语言这门课程?我可以尝试去...
1、课堂上的一定认真听,实验课一定要做好,自己额外做一些难度相对大点的实验,同时从开发一些小程序开始,比如写个日历出来,弄个时钟,做一个通讯录等等,这是在系统的学习一门语言 2、把c基础牢固了,自己去开发一些小项目,可以找老师要,可以网上找。PS:其实学习C语言基础还是很快的,把其中的基...
微信里小程序是什么
知道小有建树答主 回答量:148 采纳率:71% 帮助的人:34.4万 我也去答题访问个人页 展开全部 问题一:微信里的小程序是什么意思,怎么用? 您好!很高兴能为您解答, 所谓的小程序就是无需下载某款应用程序,直接通过微信就可以打开并且使用它,这个功能对于那些手机内存不大的朋友来说算是福音了,那么如何找...
app是如何制作的,APP如何开发?
使用dart语言进行开发,支持跨平台,weight渲染直接操作硬件层,体验可媲美原生。但是flutter技术比较新,生态还不完善,开发起来效率相对偏低 页面数据填充 页面开发出来只是空壳子,没有数据填充,这时候就需要通过接口获取数据,然后解析数据,显示在页面上。 到此,一个大概的App制作流程就结束了。 首先你要清楚自己想要什么...
微信小程序都有哪些?
第五款:包你接——趣味的红包接龙小程序,有人给你发了一个红包是不是很惊喜,但是你会发现想要领取红包必须回答问题,只有答对才会有红包;第六款:车来了——旅行上班经常乘车的必备的一款小程序,可以实时查看公交车所在的位置,以及乘坐几路车需要花费多少钱;第七款:鬼畜表情——微信聊天必备,现在聊天都喜欢用表情...
你微信里最好用的小程序是什么?
1.制作器 简介:制作各种截图,比如各种商家获得要集赞,可以利用这款小程序,或者生成对话聊天界面,都可以,还有制作各种装逼图,比如和某某明星合照什么的,而且这款小程序的功能不只这些,还可以制作各种带符号的头像,最重要的还有一个功能是提取文字。 2.姓氏壁纸生成 简介:选择姓氏、添加一段话、上传一张图片,可以...
请人做一个微信小程序需要多少钱?
小程序不同类型费用不同1、定制小程序定制小程序是根据客户实际功能需求进行的开发,此类开发灵活多样,因为涉及到功能需求、UI页面设计、产品沟通等复杂问题,一般费用都在2万以上。当然,小程序的开发成本还是和需求成正比的,如果功能需求并不多,开发成本自然低,反之亦然。2、模板小程序模板小程序价格...
浅谈大学生如何进行自我管理
管理无处不在,无时不有。大到国家、中到城市、小到企业都离不开管理这种活动,具体到每一个人,也都有对自己实施管理的问题。大学时代是年青人学会做人处事的一个重要成长阶段,能否有效地实施自我管理,对于整个自身的发展都有着重要的影响。我们常常会发现这样的问题:同在一所大学、同学一个专业、...