周宁新闻频道:java时间预算

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 12:07:57
谁能帮我做一下这道题,谢谢~
题目是:用java 写一个时间运算的类,有年月日时分秒等属性,有两个日期相减(无数),日期加无数(日期)等方法~
请各位高手帮忙,谢谢~

Java本身就有好用的日期类 Calendar 类,可以方便的做日期加法。至于减法只要做一点计算就可以了。我在 Calendar 类的基础上做了一个简单的封装,包括日期的加法和减法。数据校验和月份、时分秒等计算你参照 Java API 手册自己做一下,无非是(年2 - 年1)*12 + (月2 - 月1)很简单的。
import java.util.Calendar;

public class DateUtil {
public static float dateDiv(String date1, String date2) {
float f = 0;
String[] date1Arr = date1.split("/");
String[] date2Arr = date2.split("/");

Calendar calendar1 = Calendar.getInstance();
calendar1.set(Integer.parseInt(date1Arr[0]),Integer.parseInt(date1Arr[1]),Integer.parseInt(date1Arr[2]));
Calendar calendar2 = Calendar.getInstance();
calendar2.set(Integer.parseInt(date2Arr[0]),Integer.parseInt(date2Arr[1]),Integer.parseInt(date2Arr[2]));

long l1 = calendar1.getTimeInMillis();
long l2 = calendar2.getTimeInMillis();

f = (l2-l1)/(1000*60*60*24);
return f;
}

public static String dateAdd(String date, String addDate) {
String resultDate = "";

String[] dateArr = date.split("/");
Calendar calendar = Calendar.getInstance();
calendar.set(Integer.parseInt(dateArr[0]),Integer.parseInt(dateArr[1]),Integer.parseInt(dateArr[2]));
calendar.add(Calendar.DAY_OF_MONTH,Integer.parseInt(addDate));

resultDate = String.valueOf(calendar.get(Calendar.YEAR)) + "/" +
String.valueOf(calendar.get(Calendar.MONTH)) + "/" +
String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));

return resultDate;
}

public static void main(String args[]) {
//float dateD = dateDiv(args[0],args[1]);
String dateD = dateAdd(args[0],args[1]);
System.out.println(dateD);
}
}