//从公元元年一月一日是星期一开始计算
//用类实现求万年历的算法
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
class Calendar
{
private:
int month;
int date;
string Day[7];//char Day[7][10];//私有成员不能初始化,而且字符数组要想赋值,要么就一个一个的赋值
int Month[13];
int sumday;
int year;
public:
Calendar(int y,int m,int d)
{
year=y;
month=m;
date=d;
//Day[7]={"日","一","二","三","四","五","六"};
//Month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
Month[0]=0;Day[0]="日";
Month[1]=31;Day[1]="一";
Month[2]=28;Day[2]="二";
Month[3]=31;Day[3]="三";
Month[4]=30;Day[4]="四";
Month[5]=31;Day[5]="五";
Month[6]=30;Day[6]="六";
Month[7]=31;
Month[8]=31;
Month[9]=30;
Month[10]=31;
Month[11]=30;
Month[12]=31;
sumday=0;
}
bool Leapyear(int y)
{
if((y%400==0)||((y%4==0)&&(y%100!=0)))
{
Month[2]=29;
return true;
}
else
{
Month[2]=28;
return false;
}
}
int Dateday()
{
return date;
}
int Monthday(int m)
{
return Month[m];
}
void Yearday(int y)
{
if(Leapyear(y)) sumday=sumday+366;
else
sumday=sumday+365;
}
//int SumMonthday()
//{
// int t=month,sum=0;
// for(;t!=0;)
//{
// t--;
// sum=sum+Monthday(j);
//}
// return sum;
void Sumday() //计算从2000年1月1日起是第几天,包括了2000年1月1日这一天
{
int i=1;//j=month;
for(;i!=year;i++)
{
Yearday(i);
}
Leapyear(year);
//for(;j!=0;)
//{
//j--;
// sumday=sumday+Monthday(j);
// }
// sumday+=Dateday();
//sumday+=1;
}
int Onedate(int t) //返回这一年的第一天是星期几
{
t=sumday%7;
if(t==1) return 1;
if(t==2) return 2;
if(t==3) return 3;
if(t==4) return 4;
if(t==5) return 5;
if(t==6) return 6;
if(t==0) return 7;
}
void Output()
{
//sumday=1;
cout<<" 公元"<<year<<"的日历"<<endl<<endl;
int i,k,k1,t;
//cout<<"日"<<setw(4)<<"一"<<setw(4)<<"二"<<setw(4)<<"三"<<setw(4)<<"四"<<setw(4)<<"五"<<setw(4)<<"六"<<endl;
for(i=1;i<=month;i++)
{
cout<<" ***"<<i<<"月***"<<endl;
cout<<"----------------------------\n";
for(k1=0;k1<7;k1++)
cout<<setw(4)<<Day[k1];
cout<<endl;
for(k=1;k<=Monthday(i);k++)
{
sumday++;
t=Onedate(sumday);
if(t==7)cout<<endl<<setw(4)<<k;
else
if(k==1)cout<<setw(4*(t+1))<<k;
else
cout<<setw(4)<<k;
}
cout<<endl<<"----------------------------\n";
cout<<endl;
}
cout<<endl;
cout<<sumday<<endl;
}
};
int main()
{
int year,month,date;
cout<<"输入年月日:";
cin>>year>>month>>date;
Calendar a(year,month,date);
a.Sumday();
a.Output();
return 0;
}相关推荐
保姆级教程:用安卓手机+IP摄像头App,5分钟搭建一个免费的RTSP监控测试环境
本文提供了一份详细的保姆级教程,教你如何利用安卓手机和IP摄像头App在5分钟内搭建免费的RTSP监控测试环境。通过零成本方案,开发者可以快速获取实时视频流,适用于计算机视觉、物联网开发等多种场景。教程涵盖工具选型、配置详解、电脑端测试及OpenCV集成,助你高效完成开发测试。
请用代码写出(今天是星期x)其中x表示当天是星期几,如果当天是星期一,输出应该是"今天是星期一"
var days = ['日','一','二','三','四','五','六']; var date = new Date();console.log('今天是星期' + days[date.getDay()]);
pads(Powerpcb)出Excel格式BOM小程序
Pads或者Powerpcb出excel格式的bom文件小程序,大家可以方便的选择分层出bom,还是单层出bom。只要器件制作属性制作规范,出的bom文件非常规整可靠。
c++万年历
c++万年历设计 下面给大家看一下小编自己设计的c++万年历 千万别忘了给赏 #include <iostream> using namespace std; class RL //日历类 { public: void Pri(); //打印函数 void Js(); //日历计算函数 void Sca(); //输出函数 private: int year; int mon; int...
一个C++的万年历类
<!-- google_ad_client = "pub-2416224910262877";google_ad_width = 728;google_ad_height = 90;google_ad_format = "728x90_as";google_ad_channel = "";google_color_border = "E1771E";google
6月PMP®考完了,来看看考生们的大实话!
考完啦考完啦~日子过得真快,备考熬夜、头痛的那些日子还历历在目~昨天刚结束考试,希赛PMI教研团队就立刻开启直播,和考生们在线畅聊,一起分享此次考试的感想与收获。小赛收集和整理了部分考生的反馈,快来一起看看大家怎么说吧~
[C/C++/初学者]万年历(输入年份和月份,输出对应的日历表——数组)
紧接着就是空白问题了,即如果我们所求的该月的第一天为星期五,则前面星期日到星期四的数据为空,用k来保存这个数据,并通过循环输出。最后就可以输出我们需要的日期啦,值得注意的是,由于我们是以星期日为始,所以每当日期来到星期六时,我们就需要对其进行换行。即,我们求2022年12月的日历表,那么就计算出了从1年1月1日到2022年11月的全部天数之和。这样一来,我们就得到了指定年份之前的总天数,那么接下来就要计算指定月份之前的总天数了。利用循环,将指定月份前的天数与之前的数据相加,就得到指定月份之前的全部天数。
【c++】万年历
上部分为日期之间的简单运算,下部分为日期类写的万年历 int month_days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; #include #include #include using namespace std; class Date { public: Date(int year=0,int month=0,int day=0) {
C++万年历操作系统 (本万年历系统的操作计算的是 1901年到2049年 的万年历系统)万年历的实现
实现此万年历 1、首先要明白一些基础的概念: 能被100和400整除 或者 不能被100整除但能被4整除的年份就是闰年 闰年 有366天 2月29天 平年 有365天 2月28天 2、每个操作的思想: 选项1的思想 a、储存思想: 函数_year_1_1(); 已经记录了1901到2049年的1月1号是周几,此处应用的思想还是先记录每个月第一天是周几 求每个月第一天是周几的思想和 求 每年第一天是周几思想一样 函数_year_1_1(); 已经记录了1901到2049年的1月1号是周几
C++程序模拟万年历
VS2015编辑器,新建一个win32程序,控制台模拟万年历。
【C++】实现万年历
1.此万年历功能 1>日期加减天数 2>日期与日期之间的差值 3>输入年月显示当月日历 2.代码实现 #include #include using namespace std; class Date { public: Date(int year = 1990, int month = 1, int day = 1) //构造函数 :_year(year), _month(m
年月日转天数,天数转月日
课堂检测
C++万年历课程设计
C++课程设计——万年历 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 一.设计目的 1:要求学生能够熟练掌握C++语言的基本知识和技能。 2:基本掌握面向过程程序设计的基本思路和方法。 3:能够利用所学的基本知识和技能,解决简单的面向过程程序设计问题。 4:培养自己独立分析问题、解决问题、查阅资料以及自学能力,综合运用所学知识,解决实际问题,提高程
c++笔记之日历的实现
任务:给定具体某一天的年月日,并指出这是星期几,凭此可以查出任何一年的日历。未解决问题:1.未能实现日历的列数的自由控制,只能一列,2.循环部分过于复杂,找时间修改,3.日期算法或许并没有真正简化.以下为源码,部分还未能完善:#include<iostream>#include<string>#include<iomanip>using namespace st...
c++编写万年历
<br />#include <iostream><br />#include <iomanip>using namespace std;<br />class Data<br />{ private: int year; // int monthdays[N];<br />public: void getyear(); //提示用户输入想要查询的年份<br />int ioleapyear(); //判断该年是不是闰年<br />int weekday();//判断该年的元旦是星期几 // void
C++ 万年历 查找年、月、日、星期数以及节日等信息
C++ 万年历 显示公历的万年历,输入的年份在1800-2100年之间。功能要求如下: (1)输入一个年份,输出是在屏幕上显示该年的日历。 (2)输入年、月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是为公历节日。 部分算法 程序主要分为四个部分:菜单,年历,月历,具体某天的日历信息。 年历 void nianli() //输出一整年的年历 { cout << "请输入年份:"; runnian(); system("cls");
C++编写万年历,公元后日历程序,考虑了1582年前后以及该年的特殊情况。
公元后较为完善的万年历创建程序
【课设】C++实现万年历
一、万年历要求的功能 二、代码块 #include #include using namespace std; class date//定义一个日期类 { public: date(int y=1,int m=1,int d=1):year(y),month(m),day(d){}//构造函数 void setyear (int y){year=y;} //改变年份的接
c语言游输入星期几,已知公元1年1月1日是星期一,计算输入的年月日是星期几?(用C语言编写)...
满意答案kdsg3764542014.11.09采纳率:45%等级:10已帮助:1821人#includemain(){longyear,month,day;longtotalday;intweek;intmonthday[12]={0,31,59,90,120,151,181,212,243,273,304,334};intmonthdayLeap[12]={0,31,60,91,121...
C&C++:计算某年某月的1号是星期几
C&C++函数实训-这天星期几? 任务描述 本关任务:编写函数 whatDay,计算某年某月的1号是星期几并返回。 相关知识 要知道某一天是星期几,可以用已知的某一天进行推导。 例如已知公元1年1月1日是星期一,公元2年1月1日则是在星期一基础上加上一整年的天数(要考虑闰年,闰年一年366天,非闰年365天),如果不是1月,例如7月,则要加上1到6月的所有天数,这里也要考虑闰年,因为闰年的二月是29天,非闰年是28天。 这样就可以算出从公元1年1月1日到该年月过了多少天,而过了7天星期不
238




被折叠的 条评论
为什么被折叠?



