您的位置:首页 > 编程语言 > Java开发

java编写了24小时制的时间加减

2016-04-07 21:06 399 查看
1.对继承新的认识

当一个子类继承父类的属性时,当父类写过了一个带参数的构造方法,子类想调用父类的构造方法,必须加上一句super(属性参数1,属性参数2);而且必须放在第一位,否则编译器就会报错。子类也不必再重新写父类已有的属性,这大概也是继承的本质意思吧,当实例化子类的对象后,子类的对象就可以调用父类的属性的get,set方法,在写子类的构造方法时,加上子类的参数,加上super(属性参数1,属性参数2),就够可以了。代码见后。

2.我自己用java编写了24小时制的时间加减

加法方法思路:

1、首先计算秒,如果相加小于60,直接输出秒,如果大于了60,相加后的和-60即为秒的值,然后为(进位位)temp赋值1。

2、首先判断是否,(进位位)temp+(原来的分)minute+(加上要加的分)min 大于60,如果小于60,初始化temp = 0直接输出分,大于了就给temp= 1,减去60就是要输出的分。

3、在判断是否,,(进位位)temp+(原来的时)hour+(加上要加的时)hou 大于24,如果小于24,初始化temp = 0直接输出时,大于了就给temp= 1,减去24就是要输出的时。if temp= 1,则是第二天了!

减法思路:类似加法

public class MyTime {
private int hour;
private int minute;
private int second;

static int temp = 0;
public static void main(String[] args) {
MyTime myTime = new MyTime(50, 40, 3);//秒,分,时
System.out.println(myTime.getHour()+" 时 "+myTime.getMinute()+" 分 "+ myTime.getSecond()+" 秒 ");
myTime.sub(20, 50, 13);
System.out.println(myTime.getHour()+" 时 "+myTime.getMinute()+" 分 "+ myTime.getSecond()+" 秒 ");
//		myTime.add(20, 50, 13);
//		System.out.println(myTime.getHour()+" 时 "+myTime.getMinute()+" 分 "+ myTime.getSecond()+" 秒 ");

}
public void add(int sec,int min, int hou){  //打印时间
addSecond(sec);
addMinute(min);
addHour(hou);
}
public void sub(int sec,int min, int hou){  //打印时间
/*		addSecond(sec);
addMinute(min);
addHour(hou);*/
subSecond(sec);
subMinute(min);
subHour(hou);

}
public MyTime(int sec, int min, int hou){ //构造方法
this.second = sec;
this.minute = min;
this.hour = hou;
}
//时间  加减
public  int addSecond(int sec){
if((this.second+sec) / 60 == 0){ //判断秒相加是否大于60
this.second += sec;
}else {                        //大于了 向分进位
temp= (second+sec)/60;
second = (second+sec) % 60;
}
return second;
}
public  int addMinute(int min){
if ((temp+minute+min) / 60 == 0 ) { //判断进位过的分 相加是否大于60
this.minute += min+temp;
temp = 0;
}else {                          //进位过的分 相加大于60,向时进位
temp= (temp+minute+min)/60;
minute = (temp+minute+min) % 60;
}
return minute;
}
public int  addHour(int hou){
if (temp+hour+hou>24) {   //大于24小时, 进一天
hour =temp+hour+hou-24;
System.out.println("第二天了");
}else {
if ((temp+hou+hour) / 24 == 0) {  //不大于24,相加小于24点
this.hour+=hou+temp;
temp = 0;
//			}else {
//				temp= (temp+hour+hou)/24;
//				hour = (temp+hour+hou) % 24;
}

}
return hour;

}
public  int subSecond(int sec){
if (second - sec > 0) {
second  -= sec;
}else {
temp = 1;
second = second+60-sec;
}
return second;
}
public  int  subMinute(int min){
if (temp==0) {
if (minute>=min) {
minute-=min;
}else {
temp = 1;
minute = minute+60-min;
}
}else if (minute>min) {
minute-=min-temp;
temp=0;
}else {
minute = minute+60-min;
temp = 2;
}
return minute ;
}
public  int  subHour(int hou){
if (temp==0) {
if (hour>=hou) {
hour-=hou;
}else {
temp = 1;
hour = hour+24-hou;
System.out.println("前一天");
}
}else  if (hour-temp>hou) {
hour=hour-hou-temp;
temp=0;
}else {
hour = hour+24-hou;
temp = 2;
System.out.println("前一天");
}
return hour;
}

public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: