用Java做的 定义一个时间类型(类名MyTime)

该类具有三个属性:小时,分钟,秒钟;该类具有两个个构造方法:A、带三个参数,分别为三个属性赋初值;B、不带参数,分别为三个属性赋值为0;该类具有四个普通方法:1)MyTi... 该类具有三个属性:小时,分钟,秒钟;
该类具有两个个构造方法:A、带三个参数,分别为三个属性赋初值;B、不带参数,分别为三个属性赋值为0;
该类具有四个普通方法:
1)MyTime TimeAdd(MyTime t):自身和参数t想加,结果仍然是一个时间类型;
2)MyTime StrToTime(String str): 把(hh:mm:ss)格式的字符串转化成时间类型,如果字符串为空或者格式不是(hh:mm:ss)格式,则转为“00:00:00”;
3)String ToString():与StrToTime相反,把自身转化成(hh:mm:ss)格式的字符串,以便其他对象调用输出;
要完整程序
展开
 我来答
kejiaweiren
2010-05-14 · TA获得超过6740个赞
知道大有可为答主
回答量:1774
采纳率:0%
帮助的人:3349万
展开全部
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class MyTime {
public String hour;
public String minute;
public String second;

public MyTime() {
hour = "00";
minute = "00";
second = "00";
}

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

public MyTime TimeAdd(MyTime t) {
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");// 定义格式
String str1 = t.toString();// 时间字符串
String str2 = this.toString();// 时间字符串
Date date1 =null;
Date date2 =null;
try {// 构造时间字符串
date1= format.parse(str1);
} catch (ParseException e) {
date1 = new Date();//如果出错为00:00:00
date1.setHours(0);
date1.setMinutes(0);
date1.setSeconds(0);
}
try {
date2= format.parse(str2);
} catch (ParseException e) {// 构造时间字符串
date2 = new Date();//如果出错为00:00:00
date2.setHours(0);
date2.setMinutes(0);
date2.setSeconds(0);
}
TimeZone tz = TimeZone.getTimeZone("+0800");
Calendar c1=Calendar.getInstance();
c1.setTimeZone(tz);

c1.setTime(date1);//转成Calendar类型方便计算
Calendar c2=Calendar.getInstance();
c2.setTimeZone(tz);
c2.setTime(date2);//转成Calendar类型方便计算
String str= format.format(c1.getTimeInMillis()+c2.getTimeInMillis());

System.out.println(str);
return StrToTime(str);//返回时间
}

public MyTime StrToTime(String str) {
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
try {
format.parse(str);
return new MyTime(str.substring(0, 2), str.substring(2, 4), str
.substring(4, 6));
} catch (Exception e) {
return new MyTime("00", "00", "00");
}

}

public String toString() {
return hour + ":" + minute + ":" + second;
}

public static void main(String[] args) {
MyTime myTime=new MyTime("01","05","05");
MyTime myTime2=new MyTime("02","02","01");
myTime.TimeAdd(myTime2);
}
}
相加方法小时有问题,是时区问题,不影响
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式