IIS ASP - ASP DateDiff

This is Interesting: Free IT Magazines  
Home > Archive > IIS ASP > August 2004 > ASP DateDiff





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author ASP DateDiff
inamori

2004-08-22, 6:05 pm

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



Bob Barrows [MVP]

2004-08-22, 6:05 pm

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"


Evertjan.

2004-08-22, 6:05 pm

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)
inamori

2004-08-22, 6:05 pm

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]" <reb01501@NOyahoo.SPAMcom> 秎ン
news:%23b$uJC4hEHA.1356@TK2MSFTNGP09.phx.gbl い级糶...
> inamori wrote:
>
> 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"
>
>



Bob Barrows [MVP]

2004-08-22, 6:05 pm

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:[vbcol=seagreen]
> 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]" <reb01501@NOyahoo.SPAMcom> 秎ン
> news:%23b$uJC4hEHA.1356@TK2MSFTNGP09.phx.gbl い级糶...

--
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"


inamori

2004-08-24, 7:05 pm

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

so i can get what i want???


"Bob Barrows [MVP]" <reb01501@NOyahoo.SPAMcom> 秎ン
news:%23b$uJC4hEHA.1356@TK2MSFTNGP09.phx.gbl い级糶...
> inamori wrote:
>
> 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"
>
>



Bob Barrows [MVP]

2004-08-25, 5:58 pm

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:[vbcol=seagreen]
> so could I add one date of the end date in your program
>
> so i can get what i want???
>
>
> "Bob Barrows [MVP]" <reb01501@NOyahoo.SPAMcom> 秎ン
> news:%23b$uJC4hEHA.1356@TK2MSFTNGP09.phx.gbl い级糶...

--
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"


Inamori Izumi

2004-08-27, 6:16 pm

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]" <reb01501@NOyahoo.SPAMcom> wrote in message
news:OJexr$oiEHA.140@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:
>
> --
> 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"
>
>



Bob Barrows [MVP]

2004-08-27, 6:16 pm

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:[vbcol=seagreen]
> 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]" <reb01501@NOyahoo.SPAMcom> wrote in message
> news:OJexr$oiEHA.140@TK2MSFTNGP12.phx.gbl...

--
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"


inamori

2004-08-27, 6:17 pm

thanks
let me test tomorrow when I work
"Bob Barrows [MVP]" <reb01501@NOyahoo.SPAMcom> 秎ン
news:ONZV3R1iEHA.536@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:
>
> --
> 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"
>
>



Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com