例如:给定截止日期enddate=2010-07-31
计算得到开始日期startdate=2010-06-30
这个问题的关键在于对以下几处的考虑:
1、startdate跨年
2、startdate是2月(需考虑闰年的情况)
3、大小月
<html>
<script type="text/javascript">
function getInitStartDate(enddate){
var comp = enddate.split("-");
var year = comp[0];
var month = comp[1];
var date = comp[2];
if(month == "01") { //前一月跨年
month = 12;
year = year - 1;
} else {
month = month - 1;
if(month == 2 && date > 28) {
date = isLeapYear(year) ? 29 : 28;
} else if(date == 31){
switch(month) {
case 4:
case 6:
case 9:
case 11: date = 30; break;
default: break;
}
}
}
month = (""+month).length==1 ? ("0"+month) : (""+month);
var dateFormat = year + "-" + month + "-" + date;
return dateFormat;
}
function isLeapYear(y) { //判断y是否为闰年
return (y % 4 == 0) && (y % 400 == 0 || y % 100 != 0);
}
alert(getInitStartDate("2010-07-31"));
</script>
</html>
分享到:
相关推荐
在这个特定的案例中,我们讨论的是一个名为"NextDate"的C++程序,其功能是计算并返回输入日期的次日。接下来,我们将深入探讨这个主题,包括C++的基础知识、面向对象编程的概念以及如何实现计算日期的下一个日期。 ...
- 接着,通过条件判断检查当前日期是否小于15号,如果小于,则表示前一个月的日期可能更接近于“月初”,因此需要使用`IncMonth`函数回溯一个月,并重新获取月份。 - 然后,根据上述逻辑确定了月份之后,使用`...
Java实现给定日期计算星期几。通过给定****-**-**的格式来计算星期几。
在实现计算给定日期是一年中的第几天之前,我们需要先了解如何判断一个年份是闰年还是平年。闰年和平年的关键区别在于2月的天数不同:平年2月有28天,而闰年2月则有29天。 **判断方法:** 1. 如果年份能被400整除,...
提示2:计算给定日期的星期几(0~6, 其中6 为星期日) W = (d+2*m+3*(m+ 1)/5+y+y/4- y/100+y/400) mod 7 (要求将1、2月当作上一-年的13、14月来 计算) 三、完成nextdate程序开发,理解软件测试 的必要性。 (1) WinFrom...
精确计算日期物理差(计算给定的两个日期间的物理年月日时分秒差),参照日期使用DateTime的AddYears,AddMonths,AddDays,AddHours,AddMinutes,AddSeconds可精确回到计算日期
其中,计算给定时间点前一个月和后一个月的第一天是开发者经常会遇到的问题。本文将详细介绍如何使用Python来实现这一功能,包括使用Python内置的datetime模块以及calendar模块的相关操作技巧。 首先,我们需要了解...
用户输入一个具体的年月日,程序会验证这些输入是否合法(例如,判断是否为闰年、月份和日期是否在合理范围内等),然后计算并输出前一天的日期。 ### 二、关键函数及功能 #### 1. `Leap` 函数 - **功能**:判断...
在Python编程中,有时我们需要计算一个指定日期是当年的第几天。本文提供了三种不同的方法来实现这个功能。这些方法对于日常编程或者面试中遇到类似问题时都非常实用。 首先,我们来看第一种方法,通过字符串的`...
计算下一天的日期,运行正确,可以用来进行黑盒和白盒测试、等等
本教程将详细讲解如何在Labview中进行日期时间间隔的计算,包括计算天数和小时数,以及如何在给定日期基础上增加指定的天数。 首先,我们需要理解Labview中的日期和时间数据类型。在Labview中,日期和时间通常以...
可以创建一个当前日期的`datetime.date`对象,并用`timetuple`方法得到一个包含年、月、日等信息的时间元组,然后使用`tm_yday`属性获取今年的天数: ```python today = datetime.now().date() current_year_days =...
为了计算给定日期所在月份的最后一天,可以先将给定日期增加一个月,然后返回该月的第一天,并减去一天。这实际上就是上个月的最后一天,也就是给定日期所在月份的最后一天。 ```csharp DateTime lastDayOfMonth = ...
本程序的主要功能是接收用户输入的一个日期(限定在1000年至2018年之间),并计算出输入日期的前一天。程序通过定义一个结构体`MyDate`来存储年、月、日信息,并利用一系列函数实现了日期的合法性验证、日期减一天的...
DATEADD函数则用于根据给定的时间间隔单位(年、月、日等)对一个日期进行加减操作,从而得到一个新的日期。例如,如果我们要计算三天后的日期或者今年的第一个星期日,就可以使用DATEADD函数。 在SQL Server中,...
本文档主要介绍了如何使用 EXCEL 自动生成特殊日期,例如计算给定日期所在月份的最后一天、计算给定日期上一个月的最后一天等。本文档通过五个步骤,详细讲解了如何使用 EXCEL 的 DATE 函数、ROUNDUP 函数和其他公式...
本案例即来源于一个决策表,其目的是编写一个`NextDate()`函数,该函数接收一个日期(年、月、日)作为输入,并返回输入日期的下一天。该函数使用C语言编写,旨在通过具体实现加深对日期处理和逻辑控制的理解。 ###...
`dayOfYear`函数接收一个形如"2016-5-16"的字符串,解析日期并调用上述辅助函数,最终计算出该日期是一年中的第几天。 在这个过程中,我们需要注意时间处理的一些细节,例如C++中的年份是从1900年开始,月份是从0...
13. **RP_LAST_DAY_OF_MONTHS** & **FIRST_DAY_IN_PERIOD_GET** & **LAST_DAY_IN_PERIOD_GET**:分别用于获取一个月的最后一天、某一周期的开始和结束日期,对于财务结算、报表统计等功能至关重要。 14. **HR_99S_...
3. **月份规则**:每个月份都有一个特定的“月份值”,例如1月是0,2月是3,3月是2,4月是5,5月是0,6月是3,7月是5,8月是1,9月是4,10月是6,11月是2,12月是4。这些值与年份规则相结合,可以帮助确定日期在一年...