关于Visual studio中用C++语言编写程序的一个问题。说要输入几几年几月,然后如何输出该月1日是星期几

请问C++大神教教我这位萌新。我现在只知道<iostream>这个头文件,是否还要用其他的头文件打完这段代码?并且我还要他显示出当月的日历这个要怎么做到啊?... 请问C++大神教教我这位萌新。我现在只知道<iostream>这个头文件,是否还要用其他的头文件打完这段代码?并且我还要他显示出当月的日历这个要怎么做到啊? 展开
 我来答
百度网友3a00d8c64
2016-10-24 · TA获得超过599个赞
知道小有建树答主
回答量:430
采纳率:64%
帮助的人:317万
展开全部

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

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

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  << " ";

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式