c计算机房,今天才发现c语言机房的电脑居然可以上网

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#ifndef HEADER_DATE

#define HEADER_DATE

#include

#include

#include

using namespace std;

class date{

int year,month,day;

void init();

public:

static const int tians[];

int age();

int getyear()

int getmonth()

int getday()

date();

date(const string& s);

date(const date& d)

date(int y=2000,int m=1,int d=1);

bool isleapyear()const;

friend ostream& operator<

double xg();

double xiangge(date b);

friend date operator+=(date& a,int n);

friend bool operator==(date& a,date & b);

void display();

string huanyuan();

};

#endif

#include"date.h"

//日期的计算

const int date::tians[]=;

const long int year4=1461;

const long int year100=36524;

const long int year400=146097;

using namespace std;

void date::init(){

if(year>5000||month>12||day>31||day<1||month<1||year<1)

{cout<

exit(1);

}

}

date::date(int y,int m, int d):year(y),month(m),day(d){

init();

}

date::date(const string& s):da(s){

year=atoi(s.substr(0,4).c_str());

month=atoi(s.substr(5,2).c_str());

day=atoi(s.substr(8,2).c_str());

}

bool date::isleapyear()const{

if(year%4==0&& year%100!=0 ||year%400==0)

return true;

return false;

}

ostream& operator<

o<

return o;

}

date operator+=(date& a,int n){

switch(a.month){

case 4:

case 6:

case 9:

case 11:else a.day+=n;if(a.month>12) break;}

case 2:

if((a.year%4==0 && a.year%100!=0 )||a.year%400==0)

else a.day+=n;if(a.month>12)break;}

else {

if(a.day+n>28)else a.day+=n;if(a.month>12)}break;

}

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:else a.day+=n; if(a.month>12)}break; }

return a;

}

double date::xg(){

int days1[12]=;

long int sum1; //4年一共1461天

sum1=year/400*year400+year%400/100*year100+year%400%100/4*year4+year%400%100%4*365; //年份转换为天数所得

for(int i=0;i<12;i++)

if(month-1==i) sum1+=days1[i]+day;

return sum1;

}

double date::xiangge(date b){

return (xg()-b.xg());

}

bool operator==(date& a,date & b){

if(a.year==b.year && a.month==b.month&& a.day==b.day) return 1;

else return 0;

}

void date::display(){

cout<

}

date::date(){ //无参为系统时间

time_t timer;

struct tm* t_tm;

time(&timer);

t_tm=localtime(&timer);

year=t_tm->tm_year+1900,

month=t_tm->tm_mon+1,

day=t_tm->tm_mday;

}

int date::age(){ //计算当前时间差

time_t timer;

struct tm* t_tm;

time(&timer);

t_tm=localtime(&timer);

int y=t_tm->tm_year+1900,

m=t_tm->tm_mon+1,

d=t_tm->tm_mday;

if(m

else return (y-year);

}

string date::huanyuan(){

string m; char a1[10],b1[10], c1[10];

itoa(year, a1, 10);

itoa(month,b1, 10);

itoa(day, c1, 10);

m+=a1;

m+='/';

m+=b1;

m+='/';

m+=c1;

return m;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值