473,396 Members | 2,098 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

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 5912
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> ¦b¶l¥ó
news:%2****************@TK2MSFTNGP09.phx.gbl ¤¤¼¶¼g...
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> ¦b¶l¥ó
news:%2****************@TK2MSFTNGP09.phx.gbl ¤¤¼¶¼g...
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> ¦b¶l¥ó
news:%2****************@TK2MSFTNGP09.phx.gbl ¤¤¼¶¼g...
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> ¦b¶l¥ó
news:%2****************@TK2MSFTNGP09.phx.gbl ¤¤¼¶¼g...
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> ¦b¶l¥ó
news:%2****************@TK2MSFTNGP09.phx.gbl ¤¤¼¶¼g...
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> ¦b¶l¥ó
news:ON*************@TK2MSFTNGP11.phx.gbl ¤¤¼¶¼g...
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> ¦b¶l¥ó
news:%2****************@TK2MSFTNGP09.phx.gbl ¤¤¼¶¼g...
> 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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: CJM | last post by:
I have an ASP page that lists files and folders in a directory. I'm using a cookie to record the last time this page was visited, and I intend to show links that are created/modified from that date...
6
by: Lofty | last post by:
Hi all. I have to write an app that interacts with mySQL (I really must have done some evil, evil stuff in a previous life to be landed with this!) I need to work out the difference in days...
1
by: intl04 | last post by:
I'm trying to set up a query that will include a new field ('Days until completion') whose value is derived from the DateDiff function. I think I have the syntax correct but am not sure. Days...
4
by: Paolo | last post by:
I am having some problem with a Year Function. I have form on which I have 4 field which indicate dates and an additional form which sums those dates: These are the fields: YEARS...
1
by: PMBragg | last post by:
ORINGINAL Post >Thank you in advance. I'm trying to pull all inventory items from December >of the previous year back to 4 years for my accountant. I know this can be >done, but I'm drawing a...
7
by: Adrian | last post by:
I hit on this problem converting a VB.NET insurance application to C#. Age next birthday calculated from date of birth is often needed in insurance premium calculations. Originally done using...
5
by: sr | last post by:
Anyone know of a better way to simulate a datediff for C#, i.e., without referencing the VB.NET runtime? Only added the functionality that was needed for me so it is not the full implementation...
6
by: kevinjwilson | last post by:
I am trying to get the date difference between two dates but I don't want the function to include weekends in the calculation. Does anyone have an idea on how to make this work?
2
by: muddasirmunir | last post by:
i am using vb 6 , i had place two datepicker in form now i want to calcuate differcen of month in two date for this i used the function datediff i had try it withh many syntax but getting error...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.