JavaScript推算日期
来源:互联网 发布:南京市大数据重点项目 编辑:程序博客网 时间:2024/04/28 03:24
<html>
<head>
<title>
</title>
<script type="text/javascript">
function DayAddDiff(year, month, day, diff)
{
var numDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var isLeap = false;
var newyear = year;
var newmonth = month - 1;
var n = numDays[newmonth];
var newday = day;
var newdiff = diff;
var ln;
if (newmonth == 0)
ln = 31;
else if(newmonth == 11)
ln = 31;
else
ln = numDays[newmonth + 1];
if (diff != 0){
//判断是否润年
if (year % 4 == 0) {
if (year % 100 != 0)
isLeap = true;
else {
if (year % 400 == 0)
isLeap = true;
}
}
if (newmonth == 1 && isLeap)
++n;
if (newmonth == 0 && isLeap)
++ln;
//加值
var newday = day + newdiff;
if (newday > 0) {
if (newday > n) {
newday = newday - n;
if (newmonth == 11)
{
newmonth = 0;
newyear += 1;
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
else {
newmonth += 1
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
}
}
else if (newday == 0) {
if (newmonth == 0)
{
newmonth = 11
newyear += -1;
newday = 31;
}
else {
newmonth += -1
newday = ln;
}
}
else {
if (newmonth == 0)
{
newmonth = 11
newyear += -1;
newdiff = newday;
newday = 31;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
else {
newmonth += -1;
newdiff = newday;
newday = ln;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
}
}
//输出字符串
var daystring = "";
daystring += year;
newmonth += 1;
if (newmonth < 10)
daystring += "/0" + newmonth;
else
daystring += "/" + newmonth;
if (newday < 10)
daystring += "/0" + newday;
else
daystring += "/" + newday;
return daystring;
}
var da = DayAddDiff(2008,01,01,30);
alert(da);
</script>
</head>
<body>
</body>
</html>
<head>
<title>
</title>
<script type="text/javascript">
function DayAddDiff(year, month, day, diff)
{
var numDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var isLeap = false;
var newyear = year;
var newmonth = month - 1;
var n = numDays[newmonth];
var newday = day;
var newdiff = diff;
var ln;
if (newmonth == 0)
ln = 31;
else if(newmonth == 11)
ln = 31;
else
ln = numDays[newmonth + 1];
if (diff != 0){
//判断是否润年
if (year % 4 == 0) {
if (year % 100 != 0)
isLeap = true;
else {
if (year % 400 == 0)
isLeap = true;
}
}
if (newmonth == 1 && isLeap)
++n;
if (newmonth == 0 && isLeap)
++ln;
//加值
var newday = day + newdiff;
if (newday > 0) {
if (newday > n) {
newday = newday - n;
if (newmonth == 11)
{
newmonth = 0;
newyear += 1;
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
else {
newmonth += 1
newdiff = newday - 1;
return DayAddDiff(newyear, newmonth + 1, 1, newdiff);
}
}
}
else if (newday == 0) {
if (newmonth == 0)
{
newmonth = 11
newyear += -1;
newday = 31;
}
else {
newmonth += -1
newday = ln;
}
}
else {
if (newmonth == 0)
{
newmonth = 11
newyear += -1;
newdiff = newday;
newday = 31;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
else {
newmonth += -1;
newdiff = newday;
newday = ln;
return DayAddDiff(newyear, newmonth + 1, newday, newdiff);
}
}
}
//输出字符串
var daystring = "";
daystring += year;
newmonth += 1;
if (newmonth < 10)
daystring += "/0" + newmonth;
else
daystring += "/" + newmonth;
if (newday < 10)
daystring += "/0" + newday;
else
daystring += "/" + newday;
return daystring;
}
var da = DayAddDiff(2008,01,01,30);
alert(da);
</script>
</head>
<body>
</body>
</html>
- JavaScript推算日期
- 日期推算
- 日期推算
- 日期推算
- 日期推算处理总结
- 日期的推算
- SQL日期推算...
- 本周日期推算
- 日期的推算
- 日期推算处理
- MSSQL日期推算处理
- 日期推算问题
- 根据日期推算星期
- 日期的推算:
- java 日期推算
- 日期推算处理
- JAVA 日期推算---算法
- java 日期前后推算计算
- 有感于同事的离职
- C#网络编程系列八:P2P编程
- javascript实现表格分页
- Twitter, 微博相关文献
- Ubuntu12.04 Android Emulator 皮肤不见解决办法
- JavaScript推算日期
- WINDOWS PHONE 数据绑定笔记
- 使用 Axis2 进行 SOA 开发,第 1 部分: 了解 Axis2 基础
- 在Oracle中查询表的大小、表的占用情况和表空间的大小
- 缺省语义文件导致web应用启动报错解决方案
- 备忘:ios应用程序不允许锁屏
- JSONLib-JsonConfig探讨
- openstack各组件介绍
- sql 语句大全