⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 C语言相关程序
💻
字号:
#include<iostream.h>
int day_tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
class Date
{
	int year,month,day;
	int leap(int);
	int dton(Date &);
	Date ntod(int);
public:
	Date(){}
	Date(int y,int m,int d)
	{
		year=y;
		month=m;
		day=d;
	}
/*	void setday(int d)
	{day=d;}
	void setmonth(int m)
	{month=m;}
	void setyear(int y)
	{year=y;}
	int getday()
	{return day;}
	int getmonth()
	{return month;}
	int getyear()
	{return year;}*/
	Date operator+(int days)
	{
		static Date date;
		int number=dton(*this)+days;
		date=ntod(number);
		return date;
	}
	Date operator-(int days)
	{
		static Date date;
		int number=dton(*this);
		number-=days;
		date=ntod(number);
		return date;
	}
	int operator -(Date &b)
	{
		int days=dton(*this)-dton(b)-1;
		return days;
	}
	void disp()
	{
		cout<<year<<"."<<month<<"."<<day<<endl;
	}

};
int Date::leap(int year)
{
	if(year%4==0&&year%100!=0||year%400==0)
		return 1;
	else
		return 0;
}
int Date::dton(Date &d)
{
	int y,m,days=0;
	for(y=1;y<d.year;y++)
	{
		if(leap(d.year))
			days+=366;
		else
			days+=365;
	}
		for(m=1;m<d.month;m++)
		{
			if(leap(d.year))
				days+=day_tab[1][m];
			else
				days+=day_tab[0][m];
		}
		days+=d.day;
		return (days+1);
}
Date Date::ntod(int n)
{
	int y=1,m=1,d,rest=n,lp;
	while(1)
	{
	if(leap(y))
	{
		if(rest<=366)
			break;
		else
			rest-=366;
	}
	else
	{
		if(rest<=365)
			break;
		else
			rest-=365;
	}
	y++;
	}
	y--;
	lp=leap(y);
	while(1)
	{
		if(lp)
		{
			if(rest>day_tab[1][m-1])
				rest-=day_tab[1][m-1];
			else
				break;
		}
		else
		{
			if(rest>day_tab[0][m-1])
				rest-=day_tab[0][m-1];
			else
				break;
		}
		m++;
	}
	d=rest;
	return Date(y,m,d);
}
void main()
{
	Date now(2003,2,14);
	Date then(2003,2,12);
	cout<<"now:";
	now.disp();
	cout<<"then:";
	then.disp();
	cout<<"相差天数:"<<(now-then)<<endl;
	Date d1=now+100;
	Date d2=now-100;
	cout<<"now+100: ";
	d1.disp();
	cout<<"now-100: ";
	d2.disp();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -