关于Visual studio中用C++语言编写程序的一个问题。说要输入几几年几月,然后如何输出该月1日是星期几
请问C++大神教教我这位萌新。我现在只知道<iostream>这个头文件,是否还要用其他的头文件打完这段代码?并且我还要他显示出当月的日历这个要怎么做到啊?...
请问C++大神教教我这位萌新。我现在只知道<iostream>这个头文件,是否还要用其他的头文件打完这段代码?并且我还要他显示出当月的日历这个要怎么做到啊?
展开
1个回答
展开全部
方法有两种:一种是自己写,一种是系统计算。
方法一:(自己写,附思路)
1、设定一个对比日期,例如设2016/10/24是周一。
2、建立保存月份的数组
3、计算设定日期到输入日期总共经历多少天
4、(天数+bias)%7==输入日期的周,bias就是偏移值,碰巧设定日期是周一,所以bias为零
方法二:(附代码,VS2012_debug通过)
#include<iostream>
#include<atltime.h>
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(t.GetDayOfWeek())
{
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 << " ";
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询