ASP DateDiff

Discussion in 'ASP General' started by inamori, Aug 21, 2004.

  1. inamori

    inamori Guest

    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
     
    inamori, Aug 21, 2004
    #1
    1. Advertising

  2. 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"
     
    Bob Barrows [MVP], Aug 21, 2004
    #2
    1. Advertising

  3. inamori

    Evertjan. Guest

    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)
     
    Evertjan., Aug 21, 2004
    #3
  4. inamori

    inamori Guest

    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]" <> ¦b¶l¥ó
    news:%23b$ ¤¤¼¶¼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"
    >
    >
     
    inamori, Aug 21, 2004
    #4
  5. 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]" <> ¦b¶l¥ó
    > news:%23b$ ¤¤¼¶¼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"
     
    Bob Barrows [MVP], Aug 21, 2004
    #5
  6. 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]" <> ¦b¶l¥ó
    > news:%23b$ ¤¤¼¶¼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"
     
    Bob Barrows [MVP], Aug 25, 2004
    #6
  7. 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]" <> wrote in message
    news:OJexr$...
    > 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]" <> ¦b¶l¥ó
    > > news:%23b$ ¤¤¼¶¼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"
    >
    >
     
    Inamori Izumi, Aug 26, 2004
    #7
  8. 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]" <> wrote in message
    > news:OJexr$...
    >> 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]" <> ¦b¶l¥ó
    >>> news:%23b$ ¤¤¼¶¼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"
     
    Bob Barrows [MVP], Aug 26, 2004
    #8
  9. inamori

    inamori Guest

    thanks
    let me test tomorrow when I work
    "Bob Barrows [MVP]" <> ¦b¶l¥ó
    news: ¤¤¼¶¼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]" <> wrote in message
    > > news:OJexr$...
    > >> 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]" <> ¦b¶l¥ó
    > >>> news:%23b$ ¤¤¼¶¼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"
    >
    >
     
    inamori, Aug 26, 2004
    #9
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Mark Fox

    DateDiff in C#

    Mark Fox, Jul 16, 2003, in forum: ASP .Net
    Replies:
    3
    Views:
    12,902
    Kevin Spencer
    Jul 16, 2003
  2. DateDiff

    , Dec 29, 2006, in forum: ASP .Net
    Replies:
    1
    Views:
    467
    Jim in Arizona
    Dec 29, 2006
  3. CJM
    Replies:
    4
    Views:
    209
  4. Tim::.

    Datediff Problem

    Tim::., May 3, 2004, in forum: ASP General
    Replies:
    1
    Views:
    123
    Maarten
    May 3, 2004
  5. Drago

    Datediff good question

    Drago, Jun 5, 2004, in forum: ASP General
    Replies:
    7
    Views:
    129
    Drago
    Jun 8, 2004
Loading...

Share This Page