
Classic ASP Basics For beginner programmers starting with "classic" ASP 3, pre".NET." NOT for ASP.NET 1.0, 1.1, or 2.0 
Welcome to the p2p.wrox.com Forums.
You are currently viewing the Classic ASP Basics section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com



February 18th, 2005, 03:52 PM

Friend of Wrox


Join Date: Jun 2003
Location: , , USA.
Posts: 196
Thanks: 0
Thanked 0 Times in 0 Posts


DateFunctions
How do I get the difference in years, months and days from two dates? Example:
Date1 = 12/31/2004
Date2 = 11/30/2002
The result should give me the difference between this two dates.
I can get use the DateDiff function to get how many years or months or days but the problem is I need the result in years, months and days. I am sorry if I am getting you confused.
the result should be:
dtDiff = 2years/1month/1day
Thanks,
Judy

February 18th, 2005, 05:02 PM

Friend of Wrox


Join Date: Jan 2004
Location: , , USA.
Posts: 303
Thanks: 0
Thanked 0 Times in 0 Posts


Use DateDiff to find the difference in years, months and days and combine your results. something like this
Diff_years = DateDiff("yyyy",Date_1,Date_2)
Diff_Months = DateDiff("m",Date_1,Date_2)
Diff_Days = DateDiff("d",Date_1,Date_2)
dtDiff = Diff_years & " years/" & Diff_Months & " months/" Diff_Days & " days"

February 20th, 2005, 12:10 AM

Friend of Wrox


Join Date: Jun 2003
Location: , , USA.
Posts: 196
Thanks: 0
Thanked 0 Times in 0 Posts


shahchi1,
If I use the datediff function I will have:
dtDiff = 2/years/25 months/731 days
This is why I was saying that the DateDiff function might not work because if I do as you suggested,
Diff_years = 2
Diff_months = 25
diff_days = 731
Datediff will give you only what you are asking for specifically whether it is for years OR months OR days not the difference by Years AND Months AND Days.
I was hoping I can find out how to go about this instead of going the long way.
Thanks,
Judy

February 21st, 2005, 02:28 AM

Friend of Wrox


Join Date: Oct 2003
Location: Cochin, Kerala, India.
Posts: 463
Thanks: 0
Thanked 0 Times in 0 Posts


Here is a relatively simple algorithm for doing this.
fromdate should be before todate. If else indicate this and exit.
Seperateout the date, month and year parts of both dates (fromdate and todate)into 6 variables say date1, month1, year1, date2, month2 and year2.
yd=year2year1
md=month2month1
dd=date2date1
You can notice the following observations.
1) yd will never be less than 0.
2) If yd=0, then month difference will not be less than zero.
3) if yd=0 and md=0, then dd is greater than zero.
if(yd>0) then
if(md>0) then
if(dd<0) then
md=md1
dd=getlastdateofmonth(month21, year2)date1+date2
end if
elseif(md=0) then
if(dd<0) then
yd=yd1
md=md+11
dd=getlastdateofmonth(month21, year2)date1+date2
end if
else
yd=yd1
md=md+12
if(dd<0) then
md=md1
dd=getlastdateofmonth(month21, year2)date1+date2
end if
end if
else ' yd=0
if(dd<0) then
md=md1
dd=getlastdateofmonth(month21, year2)date1+date2
end if
end if
Where the function getlastdateofmonth gives the last date of given month. You can very easily write such a function. Please take into consideration whether year2 is leap year.
The output is
yd YEARS , md MONTHS and dd DAYS
For e.g. fromdate=141103 and todate=240905 gives
1 year, 10 months and 10 days
fromdate=240903 and todate=141103 gives
0 Yeras, 1 month and 21 days

February 21st, 2005, 07:41 PM

Friend of Wrox


Join Date: Jun 2003
Location: , , USA.
Posts: 196
Thanks: 0
Thanked 0 Times in 0 Posts


Thanks for your help. I will follow this logic.

