Lembit Soobik
lembit.dbamail at t-online.de
Tue Jun 26 06:18:32 CDT 2007
"I choose > to celebrate my birthday every day since at my age I might not get to my > next birthday." that's somethign I can agree with :-) Lembit ----- Original Message ----- From: "jwcolby" <jwcolby at colbyconsulting.com> To: "'Access Developers discussion and problem solving'" <accessd at databaseadvisors.com> Sent: Tuesday, June 26, 2007 12:59 PM Subject: Re: [AccessD] Age calculation > The whole argument seems silly. If you have to wait 365 days to celebrate > your birthday then after your first "leap year birthday", your next > birthday > (AND ALL SUBSEQUENT BIRTHDAYS) would be on the first of March. IOW once > shifted to the first of March, then you always have to wait 365 days after > that so your birthday would be permanently shifted to the first of > March!!! > And if you take the argument that "well, once it is on the 1st of March, > it > should shift back to February 29th for leap years", then why would not > other > people born on March 1st also have to shift back to February 29th? > > You were not born on the first of March, you were born on the 29th of > February. You have to wait 366 days one out of 4 years to celebrate your > birthday, and thus the following year you have to wait 364 days to "make > up > for" having to wait the extra day the year before. > > In the end, if you live exactly X number of years, your total number of > days > alive are the same regardless of when you celebrate your birthday. I > choose > to celebrate my birthday every day since at my age I might not get to my > next birthday. But in the end, that won't change how long I live. > > John W. Colby > Colby Consulting > www.ColbyConsulting.com > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock > Sent: Tuesday, June 26, 2007 6:29 AM > To: accessd at databaseadvisors.com > Subject: Re: [AccessD] Age calculation > > Hi Susan > >> That's not an error -- you can't expect date arithmetic to apply a >> "business" rule, and frankly, that's what it is. The expression is >> returning the correct answer, it just isn't the answer you require. > > It's not me and it's not a business rule. It's the answer to the question: > Which date to pick if the date (Feb. 29.) does not exist? The day before > or > the day after? > As the day after falls in a different month, the logical answer is to pick > the day before. > This is exactly what DateAdd() does: > > DateAdd("yyyy", 1, #2/29/2000#) > > which returns 2001-02-28. > > And for a reason. You may hear the argument, that a "full year", 365 days, > must pass to be one year older, thus a leapling must pass Feb. 28. for any > year which means Feb. 29 in leap years and Mar. 1. in common years. > However, those people haven't done their home work. Consider these > examples > using the expression: > > ? DateDiff("d", d1, d2) > > d1 = #1/28/2001# > d2 = #1/28/2002# > Result: 365 > > d1 = #10/28/2001# > d2 = #10/28/2002# > Result: 365 > > d1 = #1/28/2000# (leap year) > d2 = #1/28/2001# > Result: 366 > > d1 = #10/28/2000# (leap year) > d2 = #10/28/2001# > Result: 365 > > d1 = #2/28/2000# (leap year) > d2 = #2/28/2001# > Result: 366 > > d1 = #2/29/2000# (leap year) > d2 = #2/28/2001# > Result: 365 > > d1 = #2/29/2000# (leap year) > d2 = #3/1/2001# > Result: 366 > > You'll see, that only those born before Feb. 29. in a leap year will have > 366 days until their birthday of the following year, while the majority > (as > the Oct. example) will have 365 days - as will those of birthday Feb. > 29. - > thus nothing indicates why the leaplings should wait one day, increasing > the > count of days from 365 to 366, to celebrate their birthday. In fact, the > only argument seems to be a question of personal preference which is > non-arguable and fully valid though useless for business purposes or > public > authorities. > >> Seems like it would be easy enough to run a simple check -- if it's a >> Feb 29 birthdate and the date is Feb 28, add 1. > > Yes, that's what my function does - of course for common years only. > > /gustav > >>>> ssharkins at setel.com 26-06-2007 00:39 >>> > That's not an error -- you can't expect date arithmetic to apply a > "business" rule, and frankly, that's what it is. The expression is > returning > the correct answer, it just isn't the answer you require. > > Seems like it would be easy enough to run a simple check -- if it's a Feb > 29 > birthdate and the date is Feb 28, add 1. > > Susan H. > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.476 / Virus Database: 269.9.8/869 - Release Date: 25.06.2007 > 17:32 > >