%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@ page import="weaver.general.*,java.util.*,java.math.*" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="java.time.LocalDate" %>
<%@ page import="java.time.temporal.ChronoUnit" %>
<%@ page import="java.text.DecimalFormat" %>
<%@ page import="java.time.format.DateTimeFormatter" %>
<%@ page import="java.time.Period" %>
<%
int sum = 0;
String sss = "";
String companystartdate = request.getParameter("companystartdate");
String id = request.getParameter("userid");
//参加工作日期
String cjgzrq = request.getParameter("cjgzrq");
//扣减社会工龄
String kjshgl = request.getParameter("kjshgl");
// 首次参加工作日期 自定义字段
String cjgzrq_fieldid = rs.getPropValue("wuyuan_hrminfo","cjgzrq_fieldid");
// 扣减社会工龄 自定义字段id
String kjshgl_fieldid = rs.getPropValue("wuyuan_hrminfo","kjshgl_fieldid");
//司龄
String companyworkyear = "0";
if(companystartdate != null && !"".equals(companystartdate)){
int company_year = Integer.parseInt(companystartdate.substring(0,4));
int company_month = Integer.parseInt(companystartdate.substring(5,7));
int company_day = Integer.parseInt(companystartdate.substring(8,10));
companyworkyear = calculateCompanyAge(company_year,company_month,company_day);
sss += "update hrmresource set companyworkyear='"+companyworkyear+"' where id="+ id;
}
//参加工作日期
// String cjgzrq = Util.null2String(getFieldValue(cjgzrq_fieldid,id));
//扣减社会工龄
// String kjshgl = Util.null2o(getFieldValue(kjshgl_fieldid,id));
String age = calculateAge(cjgzrq);
if(cjgzrq != null && !"".equals(cjgzrq)){
sss += "update hrmresource set workstartdate='"+cjgzrq+"' where id="+ id;
if(Float.valueOf(kjshgl) > 0){
String endAge = String.valueOf(new BigDecimal(age).subtract(new BigDecimal(kjshgl)));
sss += "update hrmresource set workyear='"+endAge+"' where id="+id;
}else{
sss += "update hrmresource set workyear='"+age+"' where id="+id;
}
}
sum++;
%>
<%!
public String getFieldValue(String type,String userid){
String result = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select "+type+" from cus_fielddata where scope='HrmCustomFieldByInfoType' and scopeid='3' and id=?",userid);
if(rs.next()){
result = Util.null2String(rs.getString(type));
}
return result;
}
/**
* 根据 日期 计算年龄
* @param birthdate
* @return
*/
public String calculateAge(String birthdate) {
String result = "0";
try {
// 解析日期
LocalDate startDate = LocalDate.parse(birthdate);
LocalDate endDate = LocalDate.now();
// 计算工龄(月份)
long monthsBetween = ChronoUnit.MONTHS.between(startDate, endDate);
// 将月份转换为年并格式化为2位小数
double years = (double) monthsBetween / 12;
DecimalFormat df = new DecimalFormat("0.00"); // 设置格式为2位小数
result = df.format(years);
}catch (Exception e){
e.printStackTrace();
}
return result;
}
public String calculateCompanyAge(int year,int month,int day){
String result = "";
// 假设入职日期是2020年1月1日
LocalDate hireDate = LocalDate.of(year, month, day);
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 计算司龄(总月份数除以12)
double monthsBetween = Math.abs(Period.between(hireDate, currentDate).getMonths()) + 12 * Math.abs(Period.between(hireDate, currentDate).getYears());
double serviceYears = monthsBetween / 12.0; // 注意这里已经是总月份数除以12的结果,可以直接格式化输出
// 使用DecimalFormat格式化输出,保留两位小数
DecimalFormat df = new DecimalFormat("#.##"); // 注意这里的格式化符号使用的是英文的点号和井号,而不是中文的井号和井号。
result = df.format(serviceYears);
return result;
}
%>
Congratulation Mode 666666 !
sss <%=sss%>
sum <%=sum%>