...

View Full Version : date calculation



tanpl3
01-20-2005, 05:22 AM
:confused: i want to calculate the expiry date of my loan's
so when i key in a original loan's date, for example, (dmy) 01/01/2002, loan tenor would be 12 month or 1 year or 365 day, my loan's expiry date should be 31/12/2002, but somehow the return value is 01/01/2003.

please please to help :

Brandoe85
01-20-2005, 05:24 AM
Can you post your code?

tanpl3
01-20-2005, 09:16 AM
actually this not my code, i get from internet

<html>

<head>

<title>New Page 1</title>
</head>
<script language="javascript">
function isLeapYear(year) {
if (year % 4 == 0) {
if (year % 100 == 0) {
return (year % 400 == 0);
} else {
return (true);
}
}
return (false);
}

function daysInMonth(month, year) {
switch (month) {
case 0: return 31; // january
case 1: // february
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
case 2: return 31; // march
case 3: return 30; // april
case 4: return 31; // may
case 5: return 30; // june
case 6: return 31; // july
case 7: return 31; // august
case 8: return 30; // september
case 9: return 31; // october
case 10: return 30; // november
case 11: return 31; // december
}
}

function DateAdd(datepart, number, date) {
var d = new Date(date);
var monthname=new Array("01","02","03","04","05","06","07","08","09","10","11","12");

switch (datepart) {
// day
case "d":
case "dd":
case "D":
tmpdt= (new Date(Date.parse(d) + ((number*1000*60*60*24)-1)));
tmpdt =(tmpdt.getDate() + "/" + monthname[tmpdt.getMonth()] + "/" + tmpdt.getFullYear());
return tmpdt

// month
case "m":
case "M":
case "mm":
var i = 0;
var maxcurr = daysInMonth(d.getMonth(), d.getFullYear());
var mm = (d.getMonth() + number) % 12;
if (mm < 0) mm += 12;
var yy = d.getFullYear() + Math.floor((number + d.getMonth()) / 12);
var maxnext = daysInMonth(mm, yy);
if (maxnext < d.getDate()) {
i = (maxnext - d.getDate());
}
if (d.getDate() == maxcurr) {
i = (maxnext - maxcurr);
}

tmpdt= new Date(d.getFullYear(), d.getMonth()+number,d.getDate()+i);
tmpdt =(tmpdt.getDate() + "/" + monthname[tmpdt.getMonth()] + "/" + tmpdt.getFullYear());
Date(d.getFullYear(),d.getMonth()+number,d.getDate()+i,d.getHours(),d.getMinutes(),d.getSeconds());
return tmpdt

// year
case "y":
case "yy":
case "yyyy":
var i = 0;
if (d.getMonth() == 1) {
if (d.getDate() == 29) {
if (!isLeapYear(d.getFullYear() + number)) {
i = -1;
}
}
if (d.getDate() == 28) {
if (!isLeapYear(d.getFullYear())) {
if (isLeapYear(d.getFullYear() + number)) {
i = 1;
}
}
}
}
tmpdt = parseInt(d.getFullYear()) + parseInt(number)
tmpdt = new Date(tmpdt,d.getMonth(),d.getDate()+i);
tmpdt =(tmpdt.getDate() + "/" + monthname[tmpdt.getMonth()] + "/" + tmpdt.getFullYear());
return tmpdt
}
}

function pasvalue(k, t)
{
var strSeperator = "/";
cdt = k.value;
var mDay = cdt.substr(0,2);
var mMonth = cdt.substr(3,2);
var mYear = cdt.substr(6,4)
ncdt = mMonth+strSeperator+mDay+strSeperator+mYear;
alert (ncdt)

dpt = t.T2.value;
dno = t.T1.value;

DateAdd(dpt, dno, ncdt)
document.t1.T4.value=tmpdt;
}

</script>
<body>

<form method="POST" action="--WEBBOT-SELF--" name="t1">
<p>
<input type="text" name="T1" size="3" tabindex="1">
<input type="text" name="T2" size="1" tabindex="2">
<input type="text" name="T3" size="10" onblur="pasvalue(this, document.t1)" ></p>
<input type="text" name="T4" size="53" tabindex="4">
<p><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></p>
</form>

</body>

</html>



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum