本篇文章给大家谈谈java时间相减得年,以及java 日期减去天数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、java 两个时间相减2、java实现两个时间相减得到年月3、java实现两个时间相减,得到这个时间段是几年?不满1年的也算1年,依次类推,不满2年的算2年,
java 两个时间相减
先转成Date 再获取毫秒数来减
java.text.SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
java.util.Calendar c = Calendar.getInstance();
String date1 = “2014-10-10 00:00:00”;
String date2 = “2015-10-10 00:00:00”;
c.setTime(sdf.parse(date1));
int y1 = c.get(Calendar.YEAR);
int m1 = c.get(Calendar.MONTH);
c.setTime(sdf.parse(date2));
int y2 = c.get(Calendar.YEAR);
int m2 = c.get(Calendar.MONTH);
int y = Math.abs(y2 – y1);
int m = y * 12 + Math.abs(m1-m2);
long d1 = sdf.parse(date1).getTime();
long d2 = sdf.parse(date2).getTime();
int d = (int) (Math.abs(d2-d1) / (1000 * 60 * 60 * 24));
System.out.println(“相差年: ” + y);
System.out.println(“相差月: ” + m);
System.out.println(“相差天: ” + d);
java实现两个时间相减得到年月
大概判断了一下,比较粗糙,仅供参考。
private static void function17() throws Exception {
Scanner sc=new Scanner(System.in);
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);
System.out.println(“请输入起始时间”);
Date date1=sdf.parse(sc.next());
System.out.println(“请输入截止时间”);
Date date2=sdf.parse(sc.next());
long time1=date1.getTime();
long time2=date2.getTime();
long time=(time2-time1)/1000;
long year=time/(24*3600*365);
long month=time%(24*3600*365)/(24*3600*30);
if(year0){
System.out.println(year+”年”+month+”月”);
}else{
System.out.println(month+”月”);
}
}
java实现两个时间相减,得到这个时间段是几年?不满1年的也算1年,依次类推,不满2年的算2年,
import java.text.ParseException;
import java.util.Calendar;
import java.util.Scanner;
/*
* 需求:java实现两个时间相减,得到这个时间段是几年?不满1年的也算1年,依次类推,不满2年的算2年
*
* PS:我是菜鸟,东拼四凑弄出来这个。大概思路是这样,健壮性判断和bug、优化代码就靠你自己了
*
* 健壮性判断:输入2015-5-6-7或2015-5-50此两类格式都不会报错,都出结果了
*
* 弄好之后,希望你能贴出来,私聊发给我,谢谢
*/
public class Demo3 {
public static void main(String[] args) throws ParseException {
// 键盘输入日期
Scanner in = new Scanner(System.in);
System.out.print(“请输入时间,格式为【年-月-日】”);
String s1 = in.next();
System.out.print(“请输入另一个时间,格式为【年-月-日】”);
String s2 = in.next();
// String的split方法切割字符串,返回字符串数组
String[] str_arr1 = new String[3];
str_arr1 = s1.split(“-“);
String[] str_arr2 = new String[3];
str_arr2 = s2.split(“-“);
int[] int_arr1 = new int[str_arr1.length];
int[] int_arr2 = new int[str_arr2.length];
// 字符串数组转为int数组,因为Calendar的set方法只能传int参数
toInt(int_arr1, str_arr1);
toInt(int_arr2, str_arr2);
Calendar c1 = Calendar.getInstance();
c1.set(int_arr1[0], int_arr1[1], int_arr1[2]);
Calendar c2 = Calendar.getInstance();
c2.set(int_arr2[0], int_arr2[1], int_arr2[2]);
if (c1.compareTo(c2) 0) {
offset(c1, c2);
} else {
Calendar temp = c1;
c1 = c2;
c2 = temp;
offset(c1, c2);
}
in.close();
}
private static void toInt(int[] int_arr, String[] str_arr) {
for (int i = 0; i int_arr.length; i++) {
int_arr[i] = Integer.parseInt(str_arr[i]);
}
}
// 计算偏差
public static void offset(Calendar c1, Calendar c2) {
int year = c1.get(Calendar.YEAR) – c2.get(Calendar.YEAR);
int month_year = 0, day_year = 0;
if (c1.get(Calendar.MONTH) c2.get(Calendar.MONTH)) {
month_year = 1;
} else if (c1.get(Calendar.DAY_OF_MONTH) != c2
.get(Calendar.DAY_OF_MONTH)) {
day_year = 1;
}
System.out.println(“时间差有” + (year + month_year + day_year) + “年”);
}
}
java时间相减得年的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 日期减去天数、java时间相减得年的信息别忘了在本站进行查找喔。