转载

计算工龄前后端处理

后端工具方法:

/**
     * 两个时间相差距离多少年多少月多少日
     *
     * @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

正文到此结束