469,327 Members | 1,226 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,327 developers. It's quick & easy.

ASP DateDiff

I face that problems

07/01/2003 06/30/2006 ---------> it should be 3

01/01/2003 02/28/2005 --------->could i get 2 years and 2 months
01/01/2003 03/01/2005 --------->could i get 2 years and 2 months and 1
day

Jul 19 '05 #1
8 5529
inamori wrote:
I face that problems

07/01/2003 06/30/2006 ---------> it should be 3

01/01/2003 02/28/2005 --------->could i get 2 years and 2 months
01/01/2003 03/01/2005 --------->could i get 2 years and 2 months
and 1 day


Could you explain why these aren't the correct results?

The difference between 7/1/2003 and 6/30/2006 is:
3 years, 11 months, and 29 days
The difference between 1/1/2003 and 2/28/2005 is:
2 years, 1 months, and 27 days
The difference between 1/1/2003 and 3/1/2005 is:
2 years, 2 months, and 0 days

What is the logic used to determine when to add one day to the results?
Should the difference between 07/01/2003 and 07/01/2003 be 1 day? How about
07/01 and 07/02?

This is the code I used to get the above results:
<%
dim arDates(2,1), iYrs, iMths, iDays, i
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),arDates(i,1))
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),arDates(i,1))
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, arDates(i,1)))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Bob Barrows
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"
Jul 19 '05 #2
Bob Barrows [MVP] wrote on 21 aug 2004 in
microsoft.public.inetserver.asp.general:
Could you explain why these aren't the correct results?

The difference between 7/1/2003 and 6/30/2006 is:
3 years, 11 months, and 29 days


Hi, Bob,

2000 years ago, people where used to including the first and last day in a
declaration of time passed.

It was like a 100 meter long barbed wire fence, with one pole per meter
consisting of 101 poles.

Likewise a duration of 7 weeks, 49 days in modern count, was called 50
days, pentecost [whitsun, 49 days after easter] being the Greek word
pentakosta for 50.

I suppose the OQ could be of ancient stock.
--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Jul 19 '05 #3
Thanks for yoiur programming

add one day because of business logic

Lease agreement

01/01/2003 12/31/2006 3 years

01/01/2003 01/01/2007 3 years + 1 day

That why i need add one day on the end date....
"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> 秎ン
news:%2****************@TK2MSFTNGP09.phx.gbl い级糶...
inamori wrote:
I face that problems

07/01/2003 06/30/2006 ---------> it should be 3

01/01/2003 02/28/2005 --------->could i get 2 years and 2 months
01/01/2003 03/01/2005 --------->could i get 2 years and 2 months
and 1 day
Could you explain why these aren't the correct results?

The difference between 7/1/2003 and 6/30/2006 is:
3 years, 11 months, and 29 days
The difference between 1/1/2003 and 2/28/2005 is:
2 years, 1 months, and 27 days
The difference between 1/1/2003 and 3/1/2005 is:
2 years, 2 months, and 0 days

What is the logic used to determine when to add one day to the results?
Should the difference between 07/01/2003 and 07/01/2003 be 1 day? How

about 07/01 and 07/02?

This is the code I used to get the above results:
<%
dim arDates(2,1), iYrs, iMths, iDays, i
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),arDates(i,1))
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),arDates(i,1))
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, arDates(i,1)))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Bob Barrows
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Jul 19 '05 #4
Change the code to this:

<%
dim arDates(2,1), iYrs, iMths, iDays, i, dDate
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
dDate = DateAdd("d",1,arDates(i,1))
Response.Write "The difference between " & arDates(i,0) & _
" and " & dDate & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),dDate)
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),dDate)
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, dDate))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>


inamori wrote:
Thanks for yoiur programming

add one day because of business logic

Lease agreement

01/01/2003 12/31/2006 3 years

01/01/2003 01/01/2007 3 years + 1 day

That why i need add one day on the end date....
"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> 秎ン
news:%2****************@TK2MSFTNGP09.phx.gbl い级糶...
inamori wrote:
I face that problems

07/01/2003 06/30/2006 ---------> it should be 3

01/01/2003 02/28/2005 --------->could i get 2 years and 2
months
01/01/2003 03/01/2005 --------->could i get 2 years and 2
months and 1 day


Could you explain why these aren't the correct results?

The difference between 7/1/2003 and 6/30/2006 is:
3 years, 11 months, and 29 days
The difference between 1/1/2003 and 2/28/2005 is:
2 years, 1 months, and 27 days
The difference between 1/1/2003 and 3/1/2005 is:
2 years, 2 months, and 0 days

What is the logic used to determine when to add one day to the
results? Should the difference between 07/01/2003 and 07/01/2003 be
1 day? How about 07/01 and 07/02?

This is the code I used to get the above results:
<%
dim arDates(2,1), iYrs, iMths, iDays, i
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),arDates(i,1))
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),arDates(i,1))
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, arDates(i,1)))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Bob Barrows
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so
I don't check it very often. If you must reply off-line, then remove
the "NO SPAM"


--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"
Jul 19 '05 #5
Yes. That is what I said in my revious response isn't it?
Just in case you missed it, here it is again:
************************************************** **************
Change the code to this:

<%
dim arDates(2,1), iYrs, iMths, iDays, i, dDate
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
dDate = DateAdd("d",1,arDates(i,1))
Response.Write "The difference between " & arDates(i,0) & _
" and " & dDate & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),dDate)
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),dDate)
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, dDate))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

************************************************** *********

inamori wrote:
so could I add one date of the end date in your program

so i can get what i want???
"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> 秎ン
news:%2****************@TK2MSFTNGP09.phx.gbl い级糶...
inamori wrote:
I face that problems

07/01/2003 06/30/2006 ---------> it should be 3

01/01/2003 02/28/2005 --------->could i get 2 years and 2
months
01/01/2003 03/01/2005 --------->could i get 2 years and 2
months and 1 day


Could you explain why these aren't the correct results?

The difference between 7/1/2003 and 6/30/2006 is:
3 years, 11 months, and 29 days
The difference between 1/1/2003 and 2/28/2005 is:
2 years, 1 months, and 27 days
The difference between 1/1/2003 and 3/1/2005 is:
2 years, 2 months, and 0 days

What is the logic used to determine when to add one day to the
results? Should the difference between 07/01/2003 and 07/01/2003 be
1 day? How about 07/01 and 07/02?

This is the code I used to get the above results:
<%
dim arDates(2,1), iYrs, iMths, iDays, i
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),arDates(i,1))
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),arDates(i,1))
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, arDates(i,1)))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Bob Barrows
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so
I don't check it very often. If you must reply off-line, then remove
the "NO SPAM"


--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"
Jul 19 '05 #6
HI, I have tried your program

The output is something like that
The difference between 7/1/2003 and 7/1/2006 is: 3 years, 0 months, and 0
days
The difference between 1/1/2003 and 3/1/2005 is: 2 years, 2 months, and 0
days
The difference between 1/1/2003 and 3/2/2005 is: 2 years, 2 months, and 1
days

But actually what i want is

The difference between 7/1/2003 and 7/1/2006 is: 3 years, 0 months, and 1
days
The difference between 1/1/2003 and 3/1/2005 is: 2 years, 2 months, and 1
days
The difference between 1/1/2003 and 3/2/2005 is: 2 years, 2 months, and 2
days

can it be done? is it really logic error in computer mechanism

"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> wrote in message
news:OJ*************@TK2MSFTNGP12.phx.gbl...
Yes. That is what I said in my revious response isn't it?
Just in case you missed it, here it is again:
************************************************** **************
Change the code to this:

<%
dim arDates(2,1), iYrs, iMths, iDays, i, dDate
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
dDate = DateAdd("d",1,arDates(i,1))
Response.Write "The difference between " & arDates(i,0) & _
" and " & dDate & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),dDate)
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),dDate)
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, dDate))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

************************************************** *********

inamori wrote:
so could I add one date of the end date in your program

so i can get what i want???
"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> 秎ン
news:%2****************@TK2MSFTNGP09.phx.gbl い级糶...
inamori wrote:
I face that problems

07/01/2003 06/30/2006 ---------> it should be 3

01/01/2003 02/28/2005 --------->could i get 2 years and 2
months
01/01/2003 03/01/2005 --------->could i get 2 years and 2
months and 1 day

Could you explain why these aren't the correct results?

The difference between 7/1/2003 and 6/30/2006 is:
3 years, 11 months, and 29 days
The difference between 1/1/2003 and 2/28/2005 is:
2 years, 1 months, and 27 days
The difference between 1/1/2003 and 3/1/2005 is:
2 years, 2 months, and 0 days

What is the logic used to determine when to add one day to the
results? Should the difference between 07/01/2003 and 07/01/2003 be
1 day? How about 07/01 and 07/02?

This is the code I used to get the above results:
<%
dim arDates(2,1), iYrs, iMths, iDays, i
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),arDates(i,1))
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),arDates(i,1))
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, arDates(i,1)))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Bob Barrows
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so
I don't check it very often. If you must reply off-line, then remove
the "NO SPAM"


--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Jul 19 '05 #7
I goofed. The code should be:
<%
dim arDates(2,1), iYrs, iMths, iDays, i, dDate
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
dDate = DateAdd("d",1,arDates(i,1))
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),dDate)
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),dDate)
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, dDate))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Inamori Izumi wrote:
HI, I have tried your program

The output is something like that
The difference between 7/1/2003 and 7/1/2006 is: 3 years, 0 months,
and 0 days
The difference between 1/1/2003 and 3/1/2005 is: 2 years, 2 months,
and 0 days
The difference between 1/1/2003 and 3/2/2005 is: 2 years, 2 months,
and 1 days

But actually what i want is

The difference between 7/1/2003 and 7/1/2006 is: 3 years, 0 months,
and 1 days
The difference between 1/1/2003 and 3/1/2005 is: 2 years, 2 months,
and 1 days
The difference between 1/1/2003 and 3/2/2005 is: 2 years, 2 months,
and 2 days

can it be done? is it really logic error in computer mechanism

"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> wrote in message
news:OJ*************@TK2MSFTNGP12.phx.gbl...
Yes. That is what I said in my revious response isn't it?
Just in case you missed it, here it is again:
************************************************** **************
Change the code to this:

<%
dim arDates(2,1), iYrs, iMths, iDays, i, dDate
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
dDate = DateAdd("d",1,arDates(i,1))
Response.Write "The difference between " & arDates(i,0) & _
" and " & dDate & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),dDate)
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),dDate)
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, dDate))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

************************************************** *********

inamori wrote:
so could I add one date of the end date in your program

so i can get what i want???
"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> 秎ン
news:%2****************@TK2MSFTNGP09.phx.gbl い级糶...
inamori wrote:
> I face that problems
>
> 07/01/2003 06/30/2006 ---------> it should be 3
>
>
>
> 01/01/2003 02/28/2005 --------->could i get 2 years and 2
> months
>
>
> 01/01/2003 03/01/2005 --------->could i get 2 years and 2
> months and 1 day

Could you explain why these aren't the correct results?

The difference between 7/1/2003 and 6/30/2006 is:
3 years, 11 months, and 29 days
The difference between 1/1/2003 and 2/28/2005 is:
2 years, 1 months, and 27 days
The difference between 1/1/2003 and 3/1/2005 is:
2 years, 2 months, and 0 days

What is the logic used to determine when to add one day to the
results? Should the difference between 07/01/2003 and 07/01/2003 be
1 day? How about 07/01 and 07/02?

This is the code I used to get the above results:
<%
dim arDates(2,1), iYrs, iMths, iDays, i
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),arDates(i,1))
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),arDates(i,1))
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, arDates(i,1)))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Bob Barrows
--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap
so I don't check it very often. If you must reply off-line, then
remove the "NO SPAM"


--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so
I don't check it very often. If you must reply off-line, then remove
the "NO SPAM"


--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"
Jul 19 '05 #8
thanks
let me test tomorrow when I work
"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> 秎ン
news:ON*************@TK2MSFTNGP11.phx.gbl い级糶...
I goofed. The code should be:
<%
dim arDates(2,1), iYrs, iMths, iDays, i, dDate
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
dDate = DateAdd("d",1,arDates(i,1))
Response.Write "The difference between " & arDates(i,0) & _
" and " & arDates(i,1) & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),dDate)
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),dDate)
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, dDate))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

Inamori Izumi wrote:
HI, I have tried your program

The output is something like that
The difference between 7/1/2003 and 7/1/2006 is: 3 years, 0 months,
and 0 days
The difference between 1/1/2003 and 3/1/2005 is: 2 years, 2 months,
and 0 days
The difference between 1/1/2003 and 3/2/2005 is: 2 years, 2 months,
and 1 days

But actually what i want is

The difference between 7/1/2003 and 7/1/2006 is: 3 years, 0 months,
and 1 days
The difference between 1/1/2003 and 3/1/2005 is: 2 years, 2 months,
and 1 days
The difference between 1/1/2003 and 3/2/2005 is: 2 years, 2 months,
and 2 days

can it be done? is it really logic error in computer mechanism

"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> wrote in message
news:OJ*************@TK2MSFTNGP12.phx.gbl...
Yes. That is what I said in my revious response isn't it?
Just in case you missed it, here it is again:
************************************************** **************
Change the code to this:

<%
dim arDates(2,1), iYrs, iMths, iDays, i, dDate
arDates(0,0) = #2003-07-01#
arDates(0,1) = #2006-06-30#
arDates(1,0) = #2003-01-01#
arDates(1,1) = #2005-02-28#
arDates(2,0) = #2003-01-01#
arDates(2,1) = #2005-03-01#

for i = 0 to 2
dDate = DateAdd("d",1,arDates(i,1))
Response.Write "The difference between " & arDates(i,0) & _
" and " & dDate & " is: "
iYrs=DateDiff("yyyy",arDates(i,0),dDate)
Response.Write iYrs & " years, "
iMths=DateDiff("m",arDates(i,0),dDate)
if iMths < 12*iYrs then iYrs = iYrs - 1
if iMths - 12*iYrs < 0 then
Response.Write " 0 months, and "
else
Response.Write iMths - 12*iYrs & " months, and "
end if
iDays = DateDiff("d",arDates(i,0), _
DateAdd("m", -1*iMths, dDate))
if iDays < 1 then iDays = 0
Response.Write iDays & " days"
Response.Write "<BR>"
next
%>

************************************************** *********

inamori wrote:
so could I add one date of the end date in your program

so i can get what i want???
"Bob Barrows [MVP]" <re******@NOyahoo.SPAMcom> 秎ン
news:%2****************@TK2MSFTNGP09.phx.gbl い级糶...
> inamori wrote:
>> I face that problems
>>
>> 07/01/2003 06/30/2006 ---------> it should be 3
>>
>>
>>
>> 01/01/2003 02/28/2005 --------->could i get 2 years and 2
>> months
>>
>>
>> 01/01/2003 03/01/2005 --------->could i get 2 years and 2
>> months and 1 day
>
> Could you explain why these aren't the correct results?
>
> The difference between 7/1/2003 and 6/30/2006 is:
> 3 years, 11 months, and 29 days
> The difference between 1/1/2003 and 2/28/2005 is:
> 2 years, 1 months, and 27 days
> The difference between 1/1/2003 and 3/1/2005 is:
> 2 years, 2 months, and 0 days
>
> What is the logic used to determine when to add one day to the
> results? Should the difference between 07/01/2003 and 07/01/2003 be
> 1 day? How about 07/01 and 07/02?
>
> This is the code I used to get the above results:
> <%
> dim arDates(2,1), iYrs, iMths, iDays, i
> arDates(0,0) = #2003-07-01#
> arDates(0,1) = #2006-06-30#
> arDates(1,0) = #2003-01-01#
> arDates(1,1) = #2005-02-28#
> arDates(2,0) = #2003-01-01#
> arDates(2,1) = #2005-03-01#
>
> for i = 0 to 2
> Response.Write "The difference between " & arDates(i,0) & _
> " and " & arDates(i,1) & " is: "
> iYrs=DateDiff("yyyy",arDates(i,0),arDates(i,1))
> Response.Write iYrs & " years, "
> iMths=DateDiff("m",arDates(i,0),arDates(i,1))
> if iMths < 12*iYrs then iYrs = iYrs - 1
> if iMths - 12*iYrs < 0 then
> Response.Write " 0 months, and "
> else
> Response.Write iMths - 12*iYrs & " months, and "
> end if
> iDays = DateDiff("d",arDates(i,0), _
> DateAdd("m", -1*iMths, arDates(i,1)))
> if iDays < 1 then iDays = 0
> Response.Write iDays & " days"
> Response.Write "<BR>"
> next
> %>
>
> Bob Barrows
> --
> Microsoft MVP - ASP/ASP.NET
> Please reply to the newsgroup. This email account is my spam trap
> so I don't check it very often. If you must reply off-line, then
> remove the "NO SPAM"

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so
I don't check it very often. If you must reply off-line, then remove
the "NO SPAM"


--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Jul 19 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by Lofty | last post: by
4 posts views Thread by Paolo | last post: by
5 posts views Thread by sr | last post: by
6 posts views Thread by kevinjwilson | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
reply views Thread by listenups61195 | last post: by
reply views Thread by Purva khokhar | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.