python设计一个date类数据成员有年月日_设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数...
/*设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数
,两日期相减的天数等。
实现要求:
实现运算符加与减的重载
设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数,
两日期相减的天数等。
实现要求:
实现运算符加与减的重载
设计一个时间类,要求能够在时间类上实行以分钟为单位的加减运算,同时当分钟增或减的变化应体现日期变化。
如:2012年11月28日12:10PM 增加12小时后,应变为2012年11月29日00:10AM
*/
#include
#include
using namespace std;
bool prime(int year);
class Date
{
protected:
int year;
int mouth;
int day;
int mouths[12];
public:
Date();
void setDate();
void output();
Date operator +(Date D);
int operator -(Date D);
Date operator +(int D);
Date operator -(int D);
};
class Time :public Date
{
int hour;
int minute;
public :
void setTime();
void output();
Time operator + (int T);
Time operator - (int T);
Time daojishi ();
};
void Time::setTime()
{
cout<
cin>>year>>mouth>>day;
cin>>hour>>minute;
}
void Time::output()
{
cout<
}
Time Time::operator + (int T) //时间加上分钟数
{
Time TT;
int num1=0,sum0=0,sum1=0;
num1=T/60; //num1小时数
T=T%60;
sum1=T+minute;
if(sum1>=60)
{
hour++;
sum1=sum1-60;
}
sum0=hour+num1;
while(sum0>=24) //想家小时>24小时,则天数加1
{
day++;
sum0=sum0-24;
}
while(day>mouths[(mouth-1)%12]) //如果天数加起来大于该月的天数,则天数减去该月的天数,月份加1
{
if(prime(year+mouth/12))
mouths[1]=29;
else
mouths[1]=28;
day=day-mouths[mouth-1];
mouth++;
}
while(mouth>=12) //加起来的月份大于12,则月份减去12,年份加1
{
year++;
mouth=mouth-12;
}
TT.hour=sum0;
TT.minute=sum1;
TT.day=day;
TT.mouth=mouth;
TT.year=year;
return TT;
}
Time Time::operator - (int T) //时间减去分钟数
{
Time TT;
int num1=0,sum0=0,sum1=0;
sum0=hour*60+minute;
if(sum0>=T)
{
num1=T/60;
T=sum0-T;
T=T%60;
sum0=hour-num1;
TT.day=day;
TT.mouth=mouth;
TT.year=year;
TT.hour=sum0;
TT.minute=T;
return TT;
}
else
{
while(sum0
{
day--;
sum0=sum0+24*60;
}
sum0=sum0-T; //剩余总分钟数
T=sum0/60; //剩余小时数
sum0=sum0%60; //剩余分钟数
while(day<=0)
{
if(prime(year+mouth/12))
mouths[1]=29;
else
mouths[1]=28;
mouth--;
day=day+mouths[(mouth-1+12)%12];
}
while(mouth<1)
{
year--;
mouth=mouth+12;
}
TT.day=day;
TT.mouth=mouth;
TT.year=year;
TT.hour=T;
TT.minute=sum0;
}
return TT;
}
Time Time::daojishi() //倒计时
{
Time T1,T2,TT;Date D1,D2;
int num0=0,num1=0,num2=0,num_day=0;
T1.setTime(); //当前时间
T2.setTime(); //未来时间
D1=T1;D2=T2;
num_day=D2-D1;
num0=T1.hour*60+T1.minute; // 当前时间一天多出来的分钟数
num1=T2.hour*60+T2.minute; //未来时间一天多出来的分钟数
if(num1>=num0)
{
num1=num1-num0;
}
else
{
num1=num1+24*60-num0;
num_day--;
}
hour=num1/60; //num0小时数
minute=num1%60; //多出来的分钟数
int i=60;
while(num_day!=0||hour!=0||minute!=0)
{
while(num_day>=0)
{
hour=23;
while(hour>=0)
{ minute=59;
while(minute>=0)
{ i=60;
while(i>0)
{
cout<
system("cls");
}
minute--;
}
hour--;
}
num_day--;
}
}
return TT;
}
void Date::setDate()
{
cin>>year>>mouth>>day;
}
void Date::output()
{
cout<
}
Date::Date()
{
for(int i=0;i<12;i++)
if(i==0||i==2||i==4||i==6||i==7||i==9||i==11)
mouths[i]=31;
else
mouths[i]=30;
mouths[1]=28;
}
Date Date::operator +(Date D) //日期相加
{
Date DD;
int sum_day0=D.day,sum_day1=day,sum_day=0;
while(D.mouth--)
{
if(D.mouth!=0)
sum_day0=D.mouths[D.mouth-1]+sum_day0;
else
sum_day0=sum_day0;
}
while(mouth--)
{
if(mouth!=0)
sum_day1=sum_day1+mouths[mouth-1];
else
sum_day1=sum_day1;
}
sum_day=sum_day0+sum_day1;
if(prime(year+D.year))
{
if(sum_day>=366)
{
DD.year=D.year+year+1;
sum_day=sum_day-366;
}
else
DD.year=D.year+year;
}
else
{
if(sum_day>=365)
{
DD.year=D.year+year+1;
sum_day=sum_day-366;
}
else
DD.year=D.year+year;
}
if(prime(DD.year))
mouths[1]=29;
for(int i=0;sum_day>=mouths[i];i++)
{
sum_day=sum_day-mouths[i];
}
DD.mouth=i+1;
DD.day=sum_day;
return DD;
}
int Date::operator -(Date D) //日期相减
{
Date DD; //D被减日期
int sum_day0=D.day,sum_day1=day,sum_day=0;
int year0=D.year;
while(D.year
{
if(prime(D.year))
sum_day1=sum_day1+366;
else
sum_day1=sum_day1+365;
D.year++;
}
while(mouth--) //减的日期
{
if(prime(year))
mouths[1]=29;
else
mouths[1]=28;
if(mouth!=0)
sum_day1=sum_day1+mouths[mouth-1];
else
sum_day1=sum_day1;
}
while(D.mouth--) //被减日期
{
if(prime(year0))
D.mouths[1]=29;
else
D.mouths[1]=28;
if(D.mouth!=0)
sum_day0=D.mouths[D.mouth-1]+sum_day0;
else
sum_day0=sum_day0;
}
return sum_day1-sum_day0;
}
Date Date::operator +(int D) //日期加天数
{
Date DD;
int sum_day0=day,year_day=0,sum_day=0;
while(mouth--)
{
if(prime(year))
mouths[1]=29;
if(mouth!=0)
sum_day0=sum_day0+mouths[mouth-1];
else
sum_day0=sum_day0;
}
sum_day=sum_day0+D;
if(prime(year))
year_day=366;
else
year_day=365;
while(sum_day>=year_day)
{
if(prime(year))
{
mouths[1]=29;
sum_day=sum_day-366;
}
else
{
mouths[1]=28;
sum_day=sum_day-365;
}
year++;
if(prime(year))
year_day=366;
else
year_day=365;
}
if(prime(year))
mouths[1]=29;
for(int i=0;sum_day>mouths[i];i++)
sum_day=sum_day-mouths[i];
DD.year=year;
DD.mouth=i+1;
DD.day=sum_day;
return DD;
}
Date Date::operator -(int D) //日期减天数
{
Date DD;
int sum_day0=day,year_day=0,sum_day=0;
if(prime(year))
mouths[1]=29;
while(mouth--)
{
if(mouth!=0)
sum_day0=sum_day0+mouths[mouth-1];
else
sum_day0=sum_day0;
}
if(sum_day0>=D)
{
if(prime(year))
mouths[1]=29;
sum_day=sum_day0-D;
for(int i=0;sum_day>mouths[i];i++)
sum_day=sum_day-mouths[i];
DD.year=year;
DD.mouth=i+1;
DD.day=sum_day;
return DD;
}
else
{
while(sum_day0
{
if(prime(--year))
{
sum_day0=sum_day0+366;
}
else
sum_day0=sum_day0+365;
}
sum_day=sum_day0-D;
if(prime(year))
mouths[1]=29;
else
mouths[1]=28;
for(int i=0;sum_day>mouths[i];i++)
sum_day=sum_day-mouths[i];
DD.year=year;
DD.mouth=i+1;
DD.day=sum_day;
return DD;
}
}
bool prime(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
return true;
else
return false;
}
void show()
{
cout<
cout<
cout<
cout<
}
int main()
{
Date D1,D2,DD;
Time T1,T2,TT;
char ch='Y';
int d1,d2,t1,t2,i;
system("color 71");
cout<
cout<
cout<
cout<
cout<
while(ch=='Y')
{
cout<>i;
switch(i)
{
case 1:D1.setDate();D2.setDate();DD=D1+D2;DD.output();break;
case 2:D1.setDate();D2.setDate();d2=D1-D2;cout<
case 3:D1.setDate();cout<>d1;DD=D1+d1;DD.output();break;
case 4:D1.setDate();cout<>d2;DD=D1-d2;DD.output();break;
case 5:T1.setTime();cout<>t1;TT=T1+t1;TT.output();break;
case 6:T1.setTime();cout<>t2;TT=T1-t2;TT.output();break;
case 7:system("cls");show();break;
case 8:ch='N';break;
case 9:T1.daojishi();break;
}
cout<
}
return 0;
}
/*
1
2000 1 20
2000 1 20
2
2012 11 28
2000 1 20
2012 12 12
2011 11 11
2012 12 31 23 50
310
2013 1 1 5 0
310
*/
python设计一个date类数据成员有年月日_设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数...相关推荐
- java定义一个日期类 包括年 月 日_【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期..._考试资料网...
填空题[说明] 设计一个日期类Date包括年.月.日等私有数据成员.要求实现日期的基本运算,如某日期加上天数.某日期减去天数.两日期相差的天数等. 在Date类中设计如下重载运算符函数: Date o ...
- (C++)设计一个日期类Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,包括某日期加上指定天数、某日期减去指定天数、两个日期相差的天数等。
C++面向对象程序设计课后作业第239页第5题 题目要求:设计一个日期类Date,包括年.月.日等私有数据成员.要求实现日期的基本运算,包括某日期加上指定天数.某日期减去指定天数.两个日期相差的天数等 ...
- 设计一个日期类Date
//用C++++设计一个日期类Date,该类用于表示日期值(年.月.日). //要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作. #include<iostrea ...
- 设计一个圆类(circle),内有私有成员radius代表半径, 函数get_radius( )用于获得半径、area( )用于计算圆的面积; (2)定义一个桌子类table,内有私有数据h
1.(1)设计一个圆类(circle),内有私有成员radius代表半径, 函数get_radius( )用于获得半径.area( )用于计算圆的面积: (2)定义一个桌子类table,内有私有数据h ...
- java日期减去天数得日期_Java日期添加天数,减去天数,日历
java日期减去天数得日期 Sometimes while working on Java Date, we need to add or subtract some days from it. He ...
- java定义一个日期类 包括年 月 日_定义一个日期类:包括年、月、日三个成员变量,显示日期的方法...
/*定义一个日期类:包括年.月.日三个成员变量,显示日期的方法 * 提供构造方法:定义无参构造方法,和有参构造方法 */ 代码如下: public class Demo { public static ...
- 日期类Date控制台应用程序设计C#
日期类Date控制台应用程序设计 小咸鱼终于又准备敲代码辽呜呜,什么王者荣耀,耽误我学习hhh 实验要求 实验要求:写出类 Date 的定义代码,含有如图所示的 3 个字段及 4 个方法. 实验目的 ...
- 新手小白学JAVA 日期类Date SimpleDateFormat Calendar
1. Date日期类 类 Date 表示一个特定的瞬间,精确到毫秒 1.1 Date的构造函数 Date() 分配一个 Date 对象,以表示分配它的时间(精确到毫秒) Date(long date) ...
- 《Python:编程:从入门到实践》学习笔记_第9章 类
第9章 类 根据类来创建对象被称为实例化. 9.1 创建和使用类 使用类几乎可以模拟任何东西. 9.1.1 创建 Dog 类 class Dog(): """一次模拟小狗 ...
最新文章
- 又一壮举!GPT-3首次完成剧本创作,AI解决创造性问题的能力正迅速提升
- jekyll静态博客提升访问速度:内嵌CSS,异步加载js,压缩HTML
- 解决IIS中HTTP/1.1 500 Server Error错误的方法
- 9篇小白都能懂系列博客学完MySQL基础
- VTK:将点转换为字形用法实战
- jqgrid学习(1)
- python快递代取系统_代取快递的变现方式,校园跑腿的经营范围有多大?
- mysql导出(导入)数据库window平台
- WPF——自动关闭无模式窗口
- Jmeter如何在大并发测试下,让登录或者后续接口只执行一次?
- 为什么 Web 前端开发不抛弃 HTML 和 CSS,用纯 JavaScript 开发?
- 高中电子技术——电子元器件的识别
- C++ #pragma once用法总结
- 文件转为二进制流保存在数据库
- centos7 Zookeeper集群部署
- 流量卡物联网卡管理平台源码|PHP管理系统源码 成品可商用系统
- 服务器文件备份到本地方法,Windows服务器文件备份到本地的方法、Windows服务器数据备份方案...
- 2020年7月最新阿里云服务器优惠卷哪里领?
- 【手把手带你Godot游戏开发】FlappyBird:5.1 无尽水管子滚滚来(一)
- 云联惠案到底说明了什么?
热门文章
- Elasticsearch(三) Python 使用 elasticsearch 的基本操作
- java毕业生设计医用物品管理系统计算机源码+系统+mysql+调试部署+lw
- [激光原理与应用-21]:《激光原理与技术》-7- 激光技术大汇总与总体概述
- 解决 Maven工程运行报错Failed to clean project: Failed to delete
- Django解决css样式失效问题最终方法
- Noip前的大抱佛脚----赛前任务
- LeetCode刷题(43)~汉明距离【异或+布赖恩·克尼根算法】
- css3从入门到熟练运用(三):炫目字体,多样背景和渐变颜色,神奇边框
- 让你低调的app脱颖而出
- vs2017或vs2019或vs2022安装中Microsoft.VisualStudio.MinShell.Msi出错的问题