c++实现万年历,从公元1年1月1日开始,这一天是星期一

万年历编写(从公元算起 考虑儒略历与格里历的变换) 万年历任务: 任意输入份,输出1月12月的历 格式要求: 万年历背景:没有了解历之前会觉得不就是计算闰,然后计算那一第一天是星期几的问题,可是这样设计出来总是和现在的历对不上!!于是又看了一些经验,发现问题出现在1582,大家有兴趣可以看看手机上的历,185210月4-15期间十天是凭空消失的。这是由于公元前45公元158210月期间,罗马使用的是儒略历,计... 阅读详情
//从公元元年一月一日是星期一开始计算
//用类实现求万年历的算法
#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;
}

使用广播星历进行 GPS 卫星位置的计算 目录1.计算卫星运动的平均角速度 n2.计算观测瞬间卫星的近地点角3.计算偏近点角4.计算真近点角 f5.计算升交角距 6.计算摄动改正项7.进行摄动改正 8.计算卫星在轨道面坐标系中的位置9.计算观测瞬间升交点的经度 L10.计算卫星在瞬时地球坐标系中的位置11.计算卫星在协议地球坐标系中的位置使用广播星历进行GPS卫星位置的计算的详细步骤如下:关于在广播星历中各参数的分布情况可以参考下图:首先根据广播星历中给出的参数 计算参考时刻(TOE) 的平均角速度 式中,GM为万有引力常数 G 与地球总质量 阅读详情

相关推荐

保姆级教程:用安卓手机+IP摄像头App,5分钟搭建一个免费的RTSP监控测试环境

本文提供了一份详细的保姆级教程,教你如何利用安卓手机和IP摄像头App在5分钟内搭建免费的RTSP监控测试环境。通过零成本方案,开发者可以快速获取实时视频流,适用于计算机视觉、物联网开发等多种场景。教程涵盖工具选型、配置详解、电脑端测试及OpenCV集成,助你高效完成开发测试。

weixin_27419879的博客 238

请用代码写出(今天是星期x)其中x表示当天是星期几,如果当天是星期一,输出应该是"今天是星期一"

var days = ['','一','二','三','四','五','六']; var date = new Date();console.log('今天是星期' + days[date.getDay()]);

程序员小周的博客 3928

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...

weixin_42692479的博客 1320

一个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

派的无理性 2618

6月PMP®考完了,来看看考生们的大实话!

考完啦考完啦~子过得真快,备考熬夜、头痛的那些子还历历在目~昨天刚结束考试,希赛PMI教研团队就立刻开启直播,和考生们在线畅聊,一起分享此次考试的感想与收获。小赛收集和整理了部分考生的反馈,快来一起看看大家怎么说吧~

xsxmmm的博客 1227

[C/C++/初学者]万年历(输入份和月份,输出对应的历表——数组)

紧接着就是空白问题了,即如果我们所求的该月的第一天为星期五,则前面星期到星期四的数据为空,用k来保存这个数据,并通过循环输出。最后就可以输出我们需要的期啦,值得注意的是,由于我们是以星期为始,所以每当期来到星期六时,我们就需要对其进行换行。即,我们求202212月的历表,那么就计算出了从11月1到202211月的全部天数之和。这样一来,我们就得到了指定份之前的总天数,那么接下来就要计算指定月份之前的总天数了。利用循环,将指定月份前的天数与之前的数据相加,就得到指定月份之前的全部天数。

DuFengYa的博客 6118

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) {

shangguan_1234的博客 1966

C++万年历操作系统 (本万年历系统的操作计算的是 1901到2049万年历系统)万年历实现

实现万年历 1、首先要明白一些基础的概念: 能被100和400整除 或者 不能被100整除但能被4整除的份就是闰 有366天 2月29天 平 有365天 2月28天 2、每个操作的思想: 选项1的思想 a、储存思想: 函数_year_1_1(); 已经记录了1901到20491月1号是周几,此处应用的思想还是先记录每个月第一天是周几 求每个月第一天是周几的思想和 求 每第一天是周几思想一样 函数_year_1_1(); 已经记录了1901到20491月1号是周几

qq_51277605的博客 929

C++程序模拟万年历

VS2015编辑器,新建一个win32程序,控制台模拟万年历

一个社恐无聊的博客。 416

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

pointer_y的博客 5639

转天数,天数转月

课堂检测

qq_58309598的博客 2070

C++万年历课程设计

C++课程设计——万年历 功能要求: (1)输入一个份,输出是在屏幕上显示该历。假定输入的份在1940-2040之间。 (2)输入月,输出该月的历。 (3)输入,输出距今天还有多少天,星期几,是否是公历节。 一.设计目的 1:要求学生能够熟练掌握C++语言的基本知识和技能。 2:基本掌握面向过程程序设计的基本思路和方法。 3:能够利用所学的基本知识和技能,解决简单的面向过程程序设计问题。 4:培养自己独立分析问题、解决问题、查阅资料以及自学能力,综合运用所学知识,解决实际问题,提高程

weixin_52518806的博客 1万+

c++笔记之历的实现

任务:给定具体某一天,并指出这是星期几,凭此可以查出任何一历。未解决问题:1.未能实现历的列数的自由控制,只能一列,2.循环部分过于复杂,找时间修改,3.期算法或许并没有真正简化.以下为源码,部分还未能完善:#include&lt;iostream&gt;#include&lt;string&gt;#include&lt;iomanip&gt;using namespace st...

Dopago的博客 925

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

tjucs的专栏 528

C++ 万年历 查找、月、、星期数以及节等信息

C++ 万年历 显示公历的万年历,输入的份在1800-2100之间。功能要求如下: (1)输入一个份,输出是在屏幕上显示该历。 (2)输入、月,输出该月的历。 (3)输入,输出距今天还有多少天,星期几,是否是为公历节。 部分算法 程序主要分为四个部分:菜单,历,月历,具体某天的历信息。 历 void nianli() //输出一整历 { cout << "请输入份:"; runnian(); system("cls");

PlanetRT的博客 5102

C++编写万年历公元历程序,考虑了1582前后以及该的特殊情况。

公元后较为完善的万年历创建程序

qq_51264201的博客 1665

【课设】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;} //改变份的接

皓皓松的博客 9971

c语言游输入星期几,已知公元11月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...

weixin_28882177的博客 1718

C&C++:计算某某月的1号是星期几

C&C++函数实训-这天星期几? 任务描述 本关任务:编写函数 whatDay,计算某某月的1号是星期几并返回。 相关知识 要知道某一天是星期几,可以用已知的某一天进行推导。 例如已知公元11月1星期一公元21月1则是在星期一基础上加上一整的天数(要考虑闰,闰366天,非闰365天),如果不是1月,例如7月,则要加上1到6月的所有天数,这里也要考虑闰,因为闰的二月是29天,非闰是28天。 这样就可以算出从公元11月1到该月过了多少天,而过了7天星期不

EOF_230321的博客 7914
上一篇: c++实现数据结构的二叉树及其遍历二叉树
下一篇: 树的非递归实现的中序遍历
JPDAYSUNDAY
博客等级 码龄14年 71粉丝 77原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值