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

Java 时间(日期)相加处理

2015-08-30 21:26 495 查看
/**

 * 

 * 

 * 在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。

 * 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second)

 * 
 * 为MyTime类添加以下方法: 

 *     (1).diaplay() 打印时、分、秒 

 * (2).addSecond(int sec) 对秒进行加运算。

 *     (3).addMinute(int min) 对分进行加运算。 

 *     (4).addHour(int hou) 对时进行加运算。

 *     (5).subSecond(int sec) 对秒进行减运算。 

 *    (6).subMinute(int min) 对分进行减运算。

 *     (7).subHour(int hou) 对时进行减运算。
 */

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

public MyTime(int hour, int minute, int second) {
this.hour = hour;
this.minute = minute;
this.second = second;
}

public void setHour(int hour) {
this.hour = hour;
}

public void setMinute(int minute) {
this.minute = minute;
}

public void setSecond(int second) {
this.second = second;
}

public int getHour() {
return this.hour;
}

public int getMinute() {
return this.minute;
}

public int getSecond() {
return this.second;
}

// (1).diaplay() 打印时、分、秒
public void diaplay() {
String HH;
String MM;
String SS;
if(this.hour < 10) {
HH = "0" + this.hour;
} else {
HH = "" +  this.hour;
}
if(this.minute < 10) {
MM = "0" + this.minute;
} else {
MM = "" +  this.minute;
}
if(this.second < 10) {
SS = "0" + this.second;
} else {
SS = "" + this.second;
}
System.out.println(HH + ":" + MM + ":" + SS);
}

// (2).addSecond(int sec) 对秒进行加运算。
public void addSecond(int sec) {
int ss = sec % 60;
int mm = (sec / 60) % 60;
int hh = sec / (60 * 60);
if ((this.second + ss) < 60) {
this.second += ss;
this.minute += mm;
if(this.minute > 60) {
this.minute = this.minute % 60;
this.hour++;
this.hour += hh;
if(this.hour > 24) {
this.hour = this.hour % 24;
}
}
this.hour += hh;
if(this.hour > 24 ){
this.hour = this.hour % 24;
}
} else {
this.second = (this.second + ss) % 60;
this.minute++;
this.minute += mm;
if(this.minute > 60) {
this.minute = this.minute % 60;
this.hour++;
this.hour += hh;
if(this.hour > 24) {
this.hour = this.hour % 24;
}
}
this.hour += hh;
if(this.hour > 24 ){
this.hour = this.hour % 24;
}
}
diaplay();
}

// (3).addMinute(int min) 对分进行加运算。
public void addMinute(int min) {
int mm = min % 60;
int hh = min /60;
if ((this.minute + mm) < 60) {
this.minute += mm;
this.hour += hh;
if(this.hour > 24) {
this.hour = this.hour % 24;
}
} else {
this.minute = (this.minute + mm) % 60;
this.hour++;
this.hour += hh;
if(this.hour > 24) {
this.hour = this.hour % 24;
}
}
diaplay();
}

// (4).addHour(int hou) 对时进行加运算。
public void addHour(int hou) {
if ((this.hour + hou) < 24) {
this.hour += hou;
} else {
this.hour = (this.hour + hou) % 24;
}
diaplay();
}

// (5).subSecond(int sec) 对秒进行减运算。
public void subSecond(int sec) {
int ss = sec % 60;
int mm = (sec / 60) % 60 ;
int hh = sec / (60 * 60);
if ((this.second - ss) >= 0) {
this.second -= ss;
this.minute -= mm;
if(this.minute < 0) {
this.minute = this.minute + 60;
this.hour--;
if(this.hour < 0) {
this.hour += 24;
}
}
this.hour -= hh;
if(this.hour < 0) {
this.hour += 24;
}
} else {
this.second = this.second + 60 -ss;
this.minute--;
if((this.minute - mm) >= 0) {
this.minute -= mm;
} else {
this.minute = (this.minute + 60 -mm) % 60;
this.hour--;
if((this.hour - hh) >= 0) {
this.hour -= hh;
} else {
this.hour = (this.hour  -hh) % 24 + 24;
}
}
}
diaplay();
}

// (6).subMinute(int min) 对分进行减运算。
public void subMinute(int min) {
int mm = min % 60;
int hh = min / 60;
if ((this.minute - mm) >= 0) {
this.minute -= mm;
this.hour -= hh;
if(this.hour < 0) {
this.hour = this.hour % 24 + 24;
}
} else {
this.minute = (this.minute + 60 -mm) % 60;
this.hour--;
if((this.hour - hh) >= 0) {
this.hour -= hh;
} else {
this.hour = ((this.hour -hh) % 24 + 24) % 24;
}
}
diaplay();
}

// (7).subHour(int hou) 对时进行减运算。
public void subHour(int hou) {
hou = hou %24;
if((this.hour - hou) >= 0) {
this.hour -= hou;
} else {
this.hour = (this.hour + 24 -hou) % 24;
}
diaplay();
}
}

public class Example1 {
public static void main(String[] args) {
MyTime time = new MyTime(10, 10, 10);
time.diaplay();
time.addSecond(15);
time.addMinute(35);
time.addHour(15);

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