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

C语言;输入任意年月日,得出周几?

发布网友 发布时间:2022-05-17 08:39

我来回答

3个回答

热心网友 时间:2023-10-15 13:58

#include"stdio.h"
struct Date
{
int year;
int month;
int day;
};

int f(int x)
{
if(x%4==0&&x%100!=0||x%400==0) return 366;
else return 365;
}

int isleap(int x)
{
if(x%4==0&&x%100!=0||x%400==0) return 1;
else return 0;
}

int s(int a,int b,int c,int d,int year)
{
int array[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}};
int cha=0,i;
if(a<c||a==c&&b<d)
{
for(i=a;i<c;i++)
cha+=array[isleap(year)][i-1];
cha+=d-b;
return cha;
}
else
{
for(i=c;i<a;i++)
cha+=array[isleap(year)][i-1];
cha+=b-d;
return -cha;
}
}
int tianshu(struct Date a,struct Date b)//计算两个日期相差的天数
{
int i,tian=0;
if(a.year<b.year)
{
for(i=a.year;i<b.year;i++)
tian+=f(i);
tian+=s(a.month,a.day,b.month,b.day,b.year);
}
else
{
for(i=a.year;i<b.year;i++)
tian-=f(i);
tian+=s(a.month,a.day,b.month,b.day,b.year);
}
return tian;
}
void jieguo(int a)
{
if(a==0) printf("这一天是星期天\n");
if(a==1) printf("这一天是星期一\n");
if(a==2) printf("这一天是星期二\n");
if(a==3) printf("这一天是星期三\n");
if(a==4) printf("这一天是星期四\n");
if(a==5) printf("这一天是星期五\n");
if(a==6) printf("这一天是星期六\n");
if(a==7) printf("这一天是星期天\n");
}

int main()
{
int tian;
struct Date now={2009,4,12};//选择一天作为基准
struct Date chaxun;
printf("请输入你想查询的日期\n");
scanf("%d%d%d",&chaxun.year,&chaxun.month,&chaxun.day);
tian=tianshu(now,chaxun);
if(tian>=0)
{
jieguo(tian%7);
}
else
{
jieguo(7-((-tian)%7));
}
return 0;
}

热心网友 时间:2023-10-15 13:59

笨啊,直接用操作系统的 datetime 来构造一个时间对象不就行了么。
否则这些计算规则那么复杂,很容易出错的。
(我想除了VC,别的任何编译器都有时间类吧)

VC 有ATL 的 COleDateTime,MFC 的CTime;
构造很简单的看MSDN吧。
然后通过成员就能取星期值了

热心网友 时间:2023-10-15 13:59

主要是闰年的判断
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 嘴唇上有黑印用蜜蜡和棉线去除了胡须 有谁知道只要说某年月日就可以用心算快速算出是星期几的方法? C++程序设计给出年月日得出星期几 编写一个程序,输入年月日,就能回答那天是星期几。 C语言:输入任意年月日,求该天是星期几? c#给一个年月日 如何知道是星期几 根据年月日算出星期几的公式是多少 输入一个日期,***年**月**日,如何判断是星期几? 惊蛰前后如何钓鱼 开塔吊开了十年,三十岁想转行做销售,没经验,好找工作? 钩鲫鱼最好的水深度是多少? 30岁做了5年销售,想转行做什么好?有没有相同经历的可以指点一二 雷鲫是哪个品牌旗下的鱼竿? 如果30岁转行,做销售还是市场营销有前途?谢谢 钓鱼时,谁知道一个叫“忆江南”的鱼竿? 用“缓”组词 我心中的英雄,作文,如何写,结构 水墨江南和光威鱼竿哪个好 谁听说过“忆江南”的鱼竿? 请问以前三品武官,相当现在什么职务 笔记本电脑自动关机是电池的原因吗? c语言程序,输入年月日,判断这一天是这一年的第几天,同时判断这一天是星期几。(用switch语句) 设计一个程序,对于从键盘输入年月日,计算出对应是星期几 输入一个日期如何判断它是此月中第几个星期的星期几 编写一个程序,只要输入年月日,就能回答那天是星期几 打公费电话对方显示什么 想学模型制作,但是工具材料太贵,而且很费时间,又有其他的已经报了,但是难得的机会不想放弃,怎么办啊 my hometown英语作文,要徐州的,作业急急!!! 0.032公顷是多少亩 英语作文《我的家乡》写徐州的 徐州市最可能出的中考英语作文哪本书有? 两公田等于多少亩 求2篇英语作文:徐州的变化,80或100字就可以, 描写家乡徐州的英语短文 我只有她一个闺密,她却有很多闺密,这正常吗? 一块三角形地的面积是0.3公顷,底边上的高是80米,底边长多少米? 说理由 我只有她的照片和,能查到此人吗? 徐州2010英语作文范文 鲁滨逊都有哪些东西制作工具举例说三个 - 信息提示 0.0733公顷是多少亩