计算工龄前后端处理
后端工具方法:
/**
* 两个时间相差距离多少年多少月多少日
*
* @param workTime
* 时间参数 1 格式:1990-01-01
* @param nowTime
* 时间参数 2 格式:2009-01-01
* @return String 返回值为:xx年xx月xx日
*/
public static String getDistanceDay(String workTime, String nowTime) {
Date workDate;
Date nowDate;
long year = 0;
long month = 0;
long day = 0;
try {
workDate = sdf_format.parse(workTime);
nowDate = sdf_format.parse(nowTime);
//当前时间的年月日
Calendar cal = Calendar.getInstance();
cal.setTime(nowDate);
int nowYear = cal.get(Calendar.YEAR);
int nowMonth = cal.get(Calendar.MONTH);
int nowDay = cal.get(Calendar.DAY_OF_MONTH);
//开始工作时间的年月日
Calendar setCal = Calendar.getInstance();
setCal.setTime(workDate);
int workYear = setCal.get(Calendar.YEAR);
int workMonth = setCal.get(Calendar.MONTH);
int workDay = setCal.get(Calendar.DAY_OF_MONTH);
long dayDiff =(cal.getTimeInMillis()-setCal.getTimeInMillis())/(1000*60*60*24);
//得到工龄
year = dayDiff / 365; //得到年差
month = (dayDiff - year*365) / 30;
day = dayDiff - year*365 - month*30;
} catch (ParseException e) {
e.printStackTrace();
}
return year + "年" + month + "月" + day + "日";
}
前端工具方法:
$('#entryDate').change(function() {
//获取输入的入职时间转换为Date
var entryDate = $('#entryDate').val();
var aDate = entryDate.split("-");
//因为月份值0-11,这里把输入的月份减一
var NewDate = new Date(aDate[0], aDate[1] - 1, aDate[2]);
//当前时间
var myDate = new Date();
//时间相减得到毫秒值
var dif = myDate.getTime() - NewDate.getTime();
var difDay = parseInt(dif/(24*60*60*1000));
var year = parseInt(difDay/365);
var month = parseInt((difDay - year*365)/30);
var day = difDay - year*365 - month*30;
var value = year + "年" + month + "月" + day + "日"
//结果为【1年5月29日】这种
// var value = myDate.getFullYear() - 1970 + "年" + myDate.getMonth() + "月" + myDate.getDate() + "日"
// myDate.setTime(dif);
$('#seniority').val(value);
});
说明:
前后端方法可以配套使用,效果一致。O(∩_∩)O
正文到此结束