JS获得合同年限并且开始时间和结束时间必须是整年

//获得合同年限,且合同结束时间减去合同开始时间必须是一整年(如2015年4月3日至2017年4月二日)
function getCompactYears(){
//获得合同开始时间
var compactStartTime = $('#contractStarTime').val(); 
//获得合同结束时间
var compactEndTime = $('#contractEndTime').val(); 
if(compactStartTime !='' && compactEndTime !=''){
var startDate = new Date(compactStartTime);
var endDate = new Date(compactEndTime);
s1 = startDate.getFullYear();
e1 = endDate.getFullYear();
y = e1-s1;//相差多少年
if(y == 0){
startDate.setFullYear(s1+1);
//再把当前的startDate 减去一天
var time = startDate.getTime()-1000*60*60*24;
startDate1 = new Date(time);
if(formatDate(startDate1) != formatDate(endDate)){//如果不相等提醒更改时间
$('#contractTotal').val("");
$('#yearRent').val("");
$('#contractEndTime').val("");
top.Dialog.alert("合同开始时间跟结束时间必须相差整年");
}else{//如果相等说明合同开始和结束时间相差整年
//获取合同总金额
var contractTotal = $('#contractTotal').val();
   $('#yearRent').val(contractTotal);
}
}else{
//再把当前的startDate 减去一天
var time = startDate.getTime()-1000*60*60*24;
startDate1 = new Date(time);
var y1 =startDate1.getFullYear();
var m1 = startDate1.getMonth();
var d1 = startDate1.getDate();
var y2 =endDate.getFullYear();
var m2 = endDate.getMonth();
var d2 = endDate.getDate();
if(m1 != m2 || d1 != d2){//如果不相等提醒更改时间
$('#contractTotal').val("");
$('#yearRent').val("");
$('#contractEndTime').val("");
top.Dialog.alert("合同开始时间跟结束时间必须相差整年");
}else{//如果相等说明合同开始和结束时间相差整年
//获取合同总金额
var contractTotal = $('#contractTotal').val();
   var yearRent = contractTotal/(y2-y1);
   $('#yearRent').val(yearRent.toFixed(1));
}
}

}

}
可以使用 JavaScript 中的 Date 对象来实现根据年份和周数获取起止时间的功能。下面是一个示例代码: ```javascript function getWeekRange(year, week) { // 获取指定年份的第一天 const firstDayOfYear = new Date(year, 0, 1); // 获取指定年份的第一周的第一天 const firstWeekDay = new Date(firstDayOfYear.setDate(firstDayOfYear.getDate() + (1 - firstDayOfYear.getDay() + 7) % 7)); // 计算指定周数的起始日期 const startOfWeek = new Date(firstWeekDay.setDate(firstWeekDay.getDate() + (week - 1) * 7)); // 计算指定周数的结束日期 const endOfWeek = new Date(startOfWeek); endOfWeek.setDate(endOfWeek.getDate() + 6); return { start: startOfWeek, end: endOfWeek }; } // 示例调用 const year = 2022; const week = 9; const weekRange = getWeekRange(year, week); console.log(weekRange.start); // 输出起始时间(周一) console.log(weekRange.end); // 输出结束时间(周日) ``` 在上面的示例中,`getWeekRange` 函数接受年份和周数作为参数,首先获取指定年份的第一天,然后计算出第一周的第一天。接着根据指定的周数,通过增加相应的天数,得到该周的起始日期和结束日期。最后,返回一个包含起始时间结束时间的对象。 请注意,JavaScript 中的 Date 对象中的月份是从 0 开始的,所以在构造 Date 对象时需要将月份减 1。另外,由于每周的起始日期可能因地区而异(有些地区的周一可能不是起始日期),所以在计算第一周的第一天时,使用了 `(1 - firstDayOfYear.getDay() + 7) % 7` 来确保获取到的是周一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值