function isLeapYear(iYear){ //判断闰、平年
return ((iYear % 4 == 0) && ((iYear % 100 != 0) || (iYear % 400 == 0)));
}
_daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31]; //每月天数
function fakeAddMonth(iYear,iMonth,iDate,iIncrement) {
if(iMonth + iIncrement > 11) { //判断是否超过一年
++iYear;
iMonth += iIncrement - 12;
}else{
iMonth += iIncrement;
}
--iDate;
var daysMonth = daysInMonth(iYear,iMonth);
iDate = iDate > daysMonth ? daysMonth: iDate;
return new Date(iYear,iMonth,iDate);
}
function daysInMonth(iYear, iMonth){ //获得2月份的天数
//February
if(1 == iMonth){
return isLeapYear(iYear) ? 29: 28;
}else {
return _daysInMonth[iMonth];
}
}
function strToDate(sDateString,regFormat){ //获得年月日
regFormat = regFormat ? regFormat: /(\d{4})-(\d{1,2})-(\d{1,2})/;
var arrMatched = /(\d{4})-(\d{1,2})-(\d{1,2})/.exec(sDateString);
if(arrMatched){
var iYear = parseInt(arrMatched[1],10);
var iMonth = parseInt(arrMatched[2],10);
var iDay = parseInt(arrMatched[3],10);
if(iMonth > 12 || iMonth < 1) return null;
if(iDay > daysInMonth(iYear,iMonth - 1)) return null;
return new Date(iYear, iMonth - 1, iDay, 0, 0, 0, 0);
}
return null;
}
页面调用js
function beginDateOnChange(){
//if(validateBeginDate()) {
var oBeginDate = strToDate($_('contractBeginDate').value);
var oEndDate = fakeAddMonth(oBeginDate.getFullYear(),oBeginDate.getMonth(),oBeginDate.getDate(),12);
/*var oEndDate = oBeginDate;
if(_insureDay != '')
oEndDate.setDate(oBeginDate.getDate()+parseInt(_insureDay)-1);*/
$_('contractEndDateY').innerHTML = oEndDate.getFullYear();
$_('contractEndDateM').innerHTML = oEndDate.getMonth() + 1;
$_('contractEndDateD').innerHTML = oEndDate.getDate();
$_('contractEndDate').value = oEndDate.getFullYear() + '-' + (oEndDate.getMonth() + 1) + '-' + oEndDate.getDate();
return true;
//}
//return false;
}
分享到:
相关推荐
C-C算法,全称为Cell-Counting Algorithm,是一种在计算机网络和通信系统中用来估计数据传输时间延迟的算法。在互联网、分布式系统以及实时通信等领域,理解并精确计算时间延迟对于优化系统性能至关重要。C-C算法的...
不生成随机数使得算法更加确定性和可预测,适用于那些对随机性敏感的场景。 需要注意的是,虽然线性时间选择算法在平均和最好情况下有很好的性能,但它没有处理最坏情况的保障。在某些特定的输入数组上,例如完全...
时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程...
本压缩包中的源代码文件`Round Robin.c`、`priority.c`和`short.c`分别实现了三种常见的进程调度算法:时间片轮转算法、优先级算法和最短时间算法。 首先,我们来探讨时间片轮转算法(Round Robin,RR)。这种算法...
操作系统中的时间片轮转算法是一种调度策略,主要应用于多任务环境,目的是为了公平地分配处理器资源,特别是当系统中存在多个并发进程时。这个算法基于先来先服务(FCFS)原则,但增加了时间片的概念,以确保每个...
3. **时间片结束**:当时间片耗尽,进程被移到就绪队列的末尾。 4. **重复步骤2**:调度器再次选择队列头部的进程执行,如此循环,直到所有进程完成。 实验结果部分可能包括运行过程的截图,显示了不同进程如何随着...
该算法的核心是将每个进程分配一个固定的时间片(Time Slice),在这个时间片内,进程可以独占CPU资源,直到时间片结束或进程结束。 在该实验中,学生需要使用高级语言模拟实现动态分区存储管理,要求至少实现首次...
2. 校准源:确定一个可靠的时间参考源,如GPS信号、网络时间服务器(NTP)或楼宇内部的时钟系统。 3. 时间差计算:比较电梯系统时间与校准源时间,计算出两者之间的偏差。 4. 调整系统时间:如果时间偏差超出一定...
每个进程会被分配一个固定的时间片(例如,10毫秒),在时间片结束时,即使进程未完成,也会被强制切换到就绪队列的末尾,等待下一次轮到它。这样确保了每个进程都能在合理的时间内得到服务,提高了用户满意度。然而...
### 算法的时间复杂度与空间复杂度详解 #### 一、算法复杂度概述 在计算机科学领域,算法的时间复杂度与空间复杂度是衡量一个算法效率的重要指标。时间复杂度关注的是算法执行时间的增长速率,而空间复杂度则侧重...
时间序列算法是统计学和数据分析领域中的一个重要概念,尤其在预测和建模中扮演着关键角色。Java作为一种广泛使用的编程语言,提供了丰富的库和工具来实现时间序列算法。本篇文章将深入探讨时间序列预测的基本原理,...
AKS算法的关键之处在于其能够以确定的方式在多项式时间内完成素性测试,具体来说,其时间复杂度大约为\(O((\log n)^{6+\varepsilon})\),其中\(\varepsilon > 0\)是任意小的正数。这意味着算法的时间消耗随着输入...
根据给定文件的信息,我们可以详细地探讨“算法时间复杂度”的相关知识点。时间复杂度是衡量算法运行时间随输入规模增长而变化的函数,它在计算机科学与编程领域扮演着至关重要的角色。接下来,我们将围绕以下几个...
最短寻道时间优先算法(SSTF)是根据磁盘臂当前的位置和要访问的磁道的位置来确定下一个要访问的磁道的算法。该算法的实现思路是,操作系统选择当前磁道和要访问的磁道之间的距离最近的那个磁道作为下一个要访问的...
### 操作系统时间片轮转算法详解 #### 一、时间片轮转算法概述 时间片轮转(Round Robin,简称RR)算法是操作系统进程调度中的一种重要算法,主要用于提高系统的响应速度,确保所有进程都能获得一定的CPU执行时间...
C-C算法,全称为"Correlation Coefficient"...总之,C-C算法是一种实用的工具,它帮助研究者在MATLAB环境中有效地确定时间序列分析中的关键参数——延迟时间和嵌入维数,为深入理解和预测复杂系统的行为提供了基础。
当一个进程在时间片结束前完成其工作,它会被立即终止,并且CPU会转到下一个进程。如果进程在时间片内未完成,它会被放到队列的末尾等待下一轮调度。这种算法能保证每个进程都能在一定时间内得到执行,减少了进程的...
排序可以是按照开始时间升序或结束时间降序,视具体算法而定。 3. **资源分配**:遍历任务列表,对于每个任务检查当前时刻是否有足够的资源可用。如果有,就分配资源并更新资源状态;如果没有,可能需要等待其他...
- `int startTime`:开始时间。 - `int finishTime`:结束时间。 - `int totalTime`:周转时间。 - `float weightTotalTime`:加权周转时间。 - **QueueNode**:队列节点,用于构建链式队列。 - `int ID`:...
1. 数据结构:作者定义了一个结构体PCBNode,用于存储进程的相关信息,包括进程ID、总的需要运行时间、剩下需要运行时间、进入就绪队列时间、结束运行时间、周转时间和带权周转时间等。 2.ready队列:作者使用一个...