public int getMonth( Calendar c1, Calendar c2 ) { int iDay=( c2.get(java.util.Calendar.YEAR)-c1.get(java.util.Calendar.YEAR))*12+c2.get(java.util.Calendar.MONTH)-c1.get(java.util.Calendar.MONTH); int mod = c2.get(java.util.Calendar.DATE)-c1.get(java.util.Calendar.DATE); iDay+=(mod>=0?0:-1); return iDay; }
<script language="javascript"> function computeDate(date1,date2) { var arrD1 = date1.split("-"); var arrD2 = date2.split("-"); var d1 = new Date(arrD1[0],arrD1[1]-1,arrD1[2]); var d2 = new Date(arrD2[0],arrD2[1]-1,arrD2[2]); var result = new Date(d2.getTime() - d1.getTime()); return parseInt(result.getTime()/1000/3600/24/30); } alert(computeDate("2004-4-30","2004-10-30")); </script>
<script language=javascript> var d1=new Date(2004,10,31); var d2=new Date(2004,4,30); var d1Year=d1.getFullYear(); var d1Mohth=d1.getMonth(); var d1Date=d1.getDate(); if( new Date(d1Year,d1Mohth+6,d1Date)<d2 || new Date(d1Year,d1Mohth-6,d1Date)>d2) alert("相差超过六个月"); else alert("相差不超过六个月");</script>
//判断日期date1是否大于date2 months个月,可跨年度 function monthsOfDates(date1,date2,months){ var temp1=date1.split("-") var temp2=date2.split("-") var _months=(parseInt(temp2[0])-parseInt(temp1[0])+1)*12-(parseInt(temp1[1])+(12-parseInt(temp2[1]))) if((_months>months)||(_months==months&&(parseInt(temp2[2])-parseInt(temp1[2])>-1)))return true return false } //测试数据 alert( monthsOfDates("2004-4-30","2004-10-29",6)) alert( monthsOfDates("2004-4-30","2004-10-30",6)) alert( monthsOfDates("2004-4-30","2004-10-31",6)) alert( monthsOfDates("2003-4-30","2004-10-29",6)) alert( monthsOfDates("2003-12-30","2004-10-29",6))
<%=datediff("m","2004-4-3","2004-10-30")%>
var dt2=new Date(2004,8-1,17);
alert(dt1.getMonth()-dt2.getMonth());
function check(a,b)
{
var parse = function(s)
{
return Date.parse(s.replace(/-/g,'/'));
};
var diff = 7*24*3600*1000;
return (parse(b)-parse(a))>diff
}alert(check("2004-9-10","2004-9-18"));
alert(check("2004-9-10","2004-9-15"));
</script>
var d2=new Date(2004,4,30)
alert(parseInt(d1.getMonth())-parseInt(d2.getMonth()))
/**
输入参数类型:参数1:Calendar型 参数2:Calendar型
功能说明:两个日期相差多少月
返回值类型:int型
*/
public int getMonth( Calendar c1, Calendar c2 )
{
int iDay=( c2.get(java.util.Calendar.YEAR)-c1.get(java.util.Calendar.YEAR))*12+c2.get(java.util.Calendar.MONTH)-c1.get(java.util.Calendar.MONTH);
int mod = c2.get(java.util.Calendar.DATE)-c1.get(java.util.Calendar.DATE);
iDay+=(mod>=0?0:-1);
return iDay;
}
function computeDate(date1,date2)
{
var arrD1 = date1.split("-");
var arrD2 = date2.split("-");
var d1 = new Date(arrD1[0],arrD1[1]-1,arrD1[2]);
var d2 = new Date(arrD2[0],arrD2[1]-1,arrD2[2]);
var result = new Date(d2.getTime() - d1.getTime());
return parseInt(result.getTime()/1000/3600/24/30);
}
alert(computeDate("2004-4-30","2004-10-30"));
</script>
var d1=new Date(2004,10,31);
var d2=new Date(2004,4,30);
var d1Year=d1.getFullYear();
var d1Mohth=d1.getMonth();
var d1Date=d1.getDate();
if( new Date(d1Year,d1Mohth+6,d1Date)<d2 || new Date(d1Year,d1Mohth-6,d1Date)>d2)
alert("相差超过六个月");
else
alert("相差不超过六个月");</script>
//判断日期date1是否大于date2 months个月,可跨年度
function monthsOfDates(date1,date2,months){
var temp1=date1.split("-")
var temp2=date2.split("-")
var _months=(parseInt(temp2[0])-parseInt(temp1[0])+1)*12-(parseInt(temp1[1])+(12-parseInt(temp2[1])))
if((_months>months)||(_months==months&&(parseInt(temp2[2])-parseInt(temp1[2])>-1)))return true
return false
}
//测试数据
alert( monthsOfDates("2004-4-30","2004-10-29",6))
alert( monthsOfDates("2004-4-30","2004-10-30",6))
alert( monthsOfDates("2004-4-30","2004-10-31",6))
alert( monthsOfDates("2003-4-30","2004-10-29",6))
alert( monthsOfDates("2003-12-30","2004-10-29",6))
比较两个日期早晚
参数:date1,date2 为Date类型
返回true:大于六个月 false:小于六个月
*/
function compareDate(date1,date2){
return Abs(date1.valueOf()-date.valueOf())>3600000*24*183?true:false;
}
注:这里的183是按照30,31,30,31,30,31这么算的,我不知道你的需要是怎么样的
或者换成你自己的算法
没有经过测试,只是个思路
结果
大于6 返回 true(超过)
小于6 返回 false
等于6 再getday判断day的大小
大于0 返回 true
< = 0 返回 false