编写一个程序,输入年月日,就能回答那天是星期几。

编写一个程序,输入年月日,就能回答那天是星期几。,第1张

数据结构:

建议用结构体链表,不过全局变量也行,反正不大,没记忆功能无所谓

(1)必须要有

年份变量、月份变量、日期变量、星期变量、闰年标识

(2)必须要有

年份、月份、闰年标志以及日期临时变量、星期临时变量

算法:

(1)判断年份输入是否正确y>0&&y<=2011?对的继续,错的重输

(2)判断月份输入是否正确m>0&&m<13?对的继续,空的直接转到输出一年日历,错的重输

(3)判断日起输入是否正确d>0&&d<32?错的重输,对的继续判断

if(m!=2){

if((m==4||m==6||m==9||m==11))&&d>30)printf(错误重输)

}

else{

if(y不是闰年&&d>28)

printf(错误重输)

else

i=1;//这个i应该是闰年标志flag把

}

(4)计算星期几

(5)循环输出

while(需要输出整年日历&&没有输出完毕){

输出当月日历;

月份++;

最后一天是30?31?28?29?确定;

第一天是星期几确定(以及前面空几格);

主要函数:

(1)年月日判断

(2)星期判断

(3)日历循环输出

分开来是因为这样干净看得清楚,全放在一块儿,到时候有很多重复的程序段,调试起来你会崩溃的……

注意:

(1)注意题目要求,输入年份就要输出一年份的日历,就是说你在判断月份的时候是不是还要加个空条件判断?用int

的话最好先全初始化为0,不然不好判断。

(2)后边那个while(1);一点用都没有,这程序是你写的还是程序改错题要你改的?

方法有两种:一种是自己写,一种是系统计算。

方法一:(自己写,附思路)

1、设定一个对比日期,例如设2016/10/24是周一。

2、建立保存月份的数组

3、计算设定日期到输入日期总共经历多少天

4、(天数+bias)%7==输入日期的周,bias就是偏移值,碰巧设定日期是周一,所以bias为零

方法二:(附代码,VS2012_debug通过)

#include<iostream>

#include<atltimeh>

using namespace std;

int main()

{

 int year;

 int month;

 int day;

 cout << "Input year,month,day" << endl;

 cin >> year >> month >> day;

 CTime t(day,month-1,year);

 switch(tGetDayOfWeek())

 {

 case 1:cout << "周日" << endl;

  break;

 case 2:cout << "周一" << endl;

  break;

 case 3:cout << "周二" << endl;

  break;

 case 4:cout << "周三" << endl;

  break;

 case 5:cout << "周四" << endl;

  break;

 case 6:cout << "周五" << endl;

  break;

 case 7:cout << "周六" << endl;

  break;

 }

    return 0;

}

显示当月日历:(思路)

1、设上面方法二的month为当前月,year为当前年。

2、建立一个保存月份日数的int数组。int a={31,28,31,30};

3、建立一个函数计算是否为润年

bool leapYear(int year)

{

 if(year % 4 == 0 && year%100!=0 || year % 400 ==0)

  return true;

 else

  return false;

}

4、if(year)a[1]+=1;

5、通过for循环输出日子

for(int i=0;i!=a[month-1];i++)

{

if(i%7==0)

cout << endl;

cout << i  << " ";

}

以上就是关于编写一个程序,输入年月日,就能回答那天是星期几。全部的内容,包括:编写一个程序,输入年月日,就能回答那天是星期几。、关于Visual studio中用C++语言编写程序的一个问题。说要输入几几年几月,然后如何输出该月1日是星期几、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10175367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存