The Register® — Biting the hand that feeds IT

Comments on: 7000 Leap Year Babies attack Steve Ballmer

It's not a bug... 

Posted Friday 29th February 2008 07:48 GMT

Joke

...it's a feature!

Let's see now.. 

Posted Friday 29th February 2008 08:01 GMT

"How do you explain to a five-year-old, that they won't receive a birthday card from Geoffrey over at Toys R Us this year, because the Toys R Us computer has no way to recognize their birthday?" asks Society spokeswoman Raenell Dawn.

Well, surely anyone who was born on Feb 29th will not have a birthday until they are four, and then again when they are eight. So why would they expect a card when they are five?

Or alternatively, anyone born on Feb 29th who had had 5 birthdays, would be 20 years old. Now why would a 20 year old expect a card from Geoffrey the giraffe?

5 Year Old 

Posted Friday 29th February 2008 08:36 GMT

Happy

Worrying that a leap year 5-year old would want a giraffe from Toy R Us.

I've always wondered... 

Posted Friday 29th February 2008 08:37 GMT

Gates Horns

If you're born on 29th Feb, does that mean you only age 1 year every 4 years?

What do the do about celebrating their birthday every other 3 years?

I can't believe that these site's can't fix the leap year bugs. I mean I'm really not very good at writing shell scripts on Linux but I still managed to bodge up some code to detect leap years.

Rob

Mathematics 

Posted Friday 29th February 2008 08:40 GMT

"How do you explain to a five-year-old, that they won't receive a birthday card..."

I think it's probably best if this guy doesn't try, I'm not convinced he understands the concepts involved...

OMG 

Posted Friday 29th February 2008 08:48 GMT

Coat

'But that bug has been in our software for 20 years, it has to be in the standard.'

explanes a lot about microsoft

No Excuse. 

Posted Friday 29th February 2008 08:57 GMT

Thumb Down

I hate to write an "is-it-a-leap-year" routine recently, and after 10 minutes research on the internets, I found I could do it it about a dozen lines of code. It's not trivial, but neither is it atomic physics. There's no excuse.

OOXML standard 

Posted Friday 29th February 2008 09:03 GMT

I'd like to see a transcript from THAT meeting!

Seriously... 

Posted Friday 29th February 2008 09:17 GMT

I think Ballmer is as mad as everyone else, however, the Lotus bug is pretty well documented and to say "well he says so, so it must be true". Waste of space, the original article was interesting enough, but he's obviously thrown in that MS complaint to get publicity, and you've fallen straight into it.

Happy Birthday 

Posted Friday 29th February 2008 09:29 GMT

Today is my mum's 21st birthday. I don't suppose she gets a card from Geoffrey?

There is a difference.. 

Posted Friday 29th February 2008 09:44 GMT

Gates Horns

..between how many 'years old' you are and how many birthdays you have had.

A person born on Feb 29th may have had five 'genuine' birthdays but as they have been alive for 20 years they are 20 years old, not 5 years old.

And no Bill, it's not a feature or a standard; it's a bug. Bastard.

Sorry but I'm grumpy this morning.

Hang on... they actually want to tell the truth online? 

Posted Friday 29th February 2008 09:51 GMT

Alien

Surely no-one with more than three brain cells actually answers online questions with the truth? More likely they're actually some kind of front organisation devoted to increasing the birthday-lie-space for us all. Brave heroes of the net - I salute you!

Alien because they're out to get us....

@ Neil 

Posted Friday 29th February 2008 09:53 GMT

Your mums "21'st" birthday?

Maybe you should be getting the card from Geoffrey :-)

Ah but........ 

Posted Friday 29th February 2008 09:56 GMT

Coat

' And Microsoft said 'But that bug has been in our software for 20 years, it has to be in the standard.'" '

As this is a leap year related bug, it's only been in there 5 years!

That one there with the pocket protectors and the leather patches on the elbows.

I'm sorry Timmy.... 

Posted Friday 29th February 2008 10:00 GMT

...Geoffrey wont be sending you a birthday card like the other boys"

"But why mummy? Why does Geoffrey hate me?"

Ah, picking on the kids in school who never got a card from Geoffrey, either because their parents didn't sign them up or they were born on 29th Feb., although of course those kids are now murderers.

Funny how childhood trauma does that.

Babies indeed 

Posted Friday 29th February 2008 10:23 GMT

Just put your damn birthday as Feb 28th or March 1st. If you're that stubborn that you absolutely must put the date as Feb 29th, I assume that you refuse all presents, birthday drinks etc. offered in any year that isn't a leap year, because "the 29th February is my birthday and it doesn't happen this year, whhhuhhhh."

I mean, ringing up YouTube to complain you can't put your birthday as February 29th, for god's sake? I might be wary about shifting my birthdate if I was opening a bank account or getting a driver's licence or something else financial/legal, but with YouTube it's just a sodding age check, the month and day fields are totally irrelevant. With those forms I leave the month and day as January 1st anyway because a) privacy and b) four fewer mouse clicks.

I'm sure leap year births get enough tiresome jokes along the lines of "so you're actually only (age / 4), no booze for you then" throughout their lifetime that they really don't need people like this making it easier.

(It may be easy to talk - although if I'd been born a leap year, I would myself have been born on the 29th - but I'm fairly sure that if I had been born on the 29th, I wouldn't join a special society. As there are likely to be *quick fag-packet calculation* over 40,000 people in the UK born on 29th of February this lot can't exactly call themselves representative.)

Apologies for double post 

Posted Friday 29th February 2008 10:26 GMT

Unhappy

I missed that this is the *international* society of leap year babies. So my fag-packet calculation should have pointed out that these 7,000 people are actually representing 4,500,000 people.

If only it were the only date-related bug 

Posted Friday 29th February 2008 10:36 GMT

I've had mine rejected a couple of times, and I was born on 29th Feb, or even in a leap year.

And yes, I did take into account that some countries (all one of it) get the day and month the wrong way around.

I can only assume that the webdesigner for those sites was convinced no-one over forty would want to sign up for the service. Well, in a way (s)he was right.

(as for "actually answers online questions with the truth?" - well it helps when sorting out which services I actually signed up for, and who's been selling my data, despite it being illegal in Europe.)

@Dan 

Posted Friday 29th February 2008 10:37 GMT

You're on the Excel development team, presumably... I said it was her 21st birthday, not that she was 21 years old.

Excel, 1900 and leap years 

Posted Friday 29th February 2008 10:38 GMT

> The world's most popular spreadsheet still fails to realize that 1900 is not a leap year. "That bug has been around for 20 years," Brouwer says. "Microsoft has always claimed that it's there to provide backwards compatibility with Lotus 1-2-3. But I've spoken to Mitch Kapor, who built Lotus 1-2-3, and he said 'Oh no, we never had a bug like that.'"

So it's Mitch Kapor word

verses

1. Microsoft (http://support.microsoft.com/kb/214326)

2. A "well documented bug" (Shakje quote)

3. Joel Spolsky (http://www.joelonsoftware.com/items/2006/06/16.html)

I always lie 

Posted Friday 29th February 2008 10:41 GMT

Happy

My birthday is in sept but I usually lie on those forms anyway. Seriously, what benefit does telling them your actual birthday give to you? Different case when money is involved otherwise it's lies, lies, lies!

What's the Microsoft angle here? 

Posted Friday 29th February 2008 10:49 GMT

Stop

Enough already! Stop right there!

Firstly, WTF has this story to do with the mad spastic-dancing foul-mouthed sweat-monster who loves his company? Putting his name in the headline merely draws specious attention to a non-story about whingeing twenty-ninthers, people who really need to get a grip! Who cares about their bloody birthday?

Secondly, like Spleen above I also: "...leave the month and day as January 1st anyway because a) privacy and b) four fewer mouse clicks."

Why would I want YouTube, eBay, Google and every packet-sniffer in between to know my true date of birth (DoB)? Allied with other personally-identifying info, DoB is a useful tool in any scamsters' armoury.

@Spleen 

Posted Friday 29th February 2008 11:07 GMT

As spleen suggests, just stick another birthdate in.

In the particular case of birthday cards, I don't tend to write "Happy birthday on dd:mm!", just "Happy birthday!". Similarly, I tend to post cards a few days early, relying on the recipient to be smart enough to know when to open it.

If the bulk-mailed birthday cards *do* have a date printed on, maybe people would be better just asking the retailer to not put a date on - that doesn't involve any futile complaining about Microsoft.

In any case, it's worth Feb 29th children learning they're a chronological anomaly, just as it's worth every kid learning at an early age that being in a database doesn't mean a company really knows them or care about them - it's just marketing.

The U.S. Defense Department is even more confused 

Posted Friday 29th February 2008 11:18 GMT

http://www.space.com/news/080220-ap-satellite-weather.html

'"We're now into the window," a senior defense official told a news conference minutes after the shuttle landed.

He said it will remain open until Feb. 29 or 30.'

checkdate()? 

Posted Friday 29th February 2008 11:31 GMT

Stop

in php it takes into account leap years:

if(!checkdate($month,$day,$year)){return false;}

one line. that's all. Not a javascript solution, but certainly one that works

Brouwer's got a calendar bug? 

Posted Friday 29th February 2008 11:36 GMT

"How do you explain to a five-year-old, that they won't receive a birthday card..."

Someone born on the 29th of february will have his first birthday when he turns 4, not 5.

Unbelievable 

Posted Friday 29th February 2008 11:37 GMT

Normally I rarely side with Pope Gregory, but in terms of date standards I think he pips Microsoft at the post. Papal infallibility might be dubious but it's a better justification for using a particular calendar than Microsoft's incompetence...

surely this is easy 

Posted Friday 29th February 2008 11:39 GMT

Alert

if(remainder($year/4)==0)

{

dayOfMonthDropdown.items.add('29');

}

// or even

$febDays = ($year\4==0) ? 29 : 28;

It is inexcusable that any developer would not think of this.

I think you've all missed the point 

Posted Friday 29th February 2008 11:45 GMT

Happy

i've just signed about 40 of my mates up to the toys r us website for cards in the next week or two.

@JP 

Posted Friday 29th February 2008 11:51 GMT

Flame

Yep thats definately it, everbody should start using that code.

of course that's sarcasm. you should reread the article and look for the clues that suggests it might be a bit more difficult than that (clue: 1900)

then perhaps wikipedia?

Is that the issue? 

Posted Friday 29th February 2008 11:52 GMT

Thumb Down

is it not about the validation of the date? or is it about the fact that calendar goes 28th Feb -> 1st March without processing all the records between those dates? Hence those people who registered their b day on the 29th feb never get their record in a batch job?

I'm confused what you said the problem is. If they can't get on the list then surely they already know they aren't getting a card.

Surely.. 

Posted Friday 29th February 2008 11:58 GMT

Linux

..the story (if such there be) is that MS/Excel doesn't behave properly towards leap years. Ballmer stating that the problem has existed for so long that it's now 'standard' tells you all you need to know about him and his company. I give it ten years...

@JP Strauss 

Posted Friday 29th February 2008 12:10 GMT

Alert

It's precisely the "surely this is easy" attitude that created the bug in the first place. Leap year is not just based on a 4 year cycle, there are modifiers for 100 and 400 divisors too... RTFM

is it a Leap Year code... 

Posted Friday 29th February 2008 12:29 GMT

Thumb Up

if(year%4==0 && (year%100!=0 || year%400==0))

return true;

@ JP Strauss - surely this is easy 

Posted Friday 29th February 2008 12:33 GMT

Boffin

// Century correction: if year divisible by 100 but not 400 then common year.

// (Needed for calculating age of my great grandmother in days, or for messing about with daily interest rates of hundred-year Government bonds)

// Herschel's correction - if year is divisible by 4000 then common year - not required due to general insertion of leap seconds.

if(remainder($year/4)==0 && ! (remainder (year/100) == 0 && remainder (year/400) != 0 ))

{

dayOfMonthDropdown.items.add('29');

}

// or even

$febDays = ($year/4==0 ? ($year/100==0 ? (year/400==0 ? 29 : 28) : 29) : 28);

If you want a card on your birthday... 

Posted Friday 29th February 2008 12:34 GMT

...there's no point in putting a fake date.

Excel 

Posted Friday 29th February 2008 12:50 GMT

Gates Halo

Excel implements the leap-year bug by default but you can switch to the 1904 date system by going to Tools -> Options -> Calculation -> select 1904 Date System.

Re 1900 bug -- standard 

Posted Friday 29th February 2008 12:51 GMT

Joke

There's an old joke about this:

How many Microsoft developers does it take to change a light bulb? None. Darkness is the new standard.

@david wilson 

Posted Friday 29th February 2008 12:57 GMT

<quote>In any case, it's worth Feb 29th children learning they're a chronological anomaly, just as it's worth every kid learning at an early age that being in a database doesn't mean a company really knows them or care about them - it's just marketing.</quote>

I couldn't agree more, it is also a useful "interesting" way to get them into mathematics and/or computer science -- which has to be a good thing.

Ashamed 

Posted Friday 29th February 2008 13:18 GMT

Flame

As a pro codemonkey, this kind of thing makes me totally ashamed of my profession. Any date handling code should include leap years and the 29th of Feb in it's testing. It's the canonical edge case, FFS,

And Andy and JP, it's because of jerkoffs like you that this kind of thing still apparently happens regularly. Andy, because if it takes you a dozen lines of code, you shouldn't be anywhere near a computer programming role, and JP because yes, it is quite simple, and yet you have manifestly failed to grasp the essentials (as the bishop said to the actress) despite the clues w/r/t to 1900 in the article, and then ejaculated a piece of code that exhibits EXACTLY the problem under discussion, all the while staring smugly at your output and thinking "Well, that's another problem sorted, fookin genius me". Fail

I'm sorry, but you are incompetent, and you give the rest of us a bad name. Either quit now, or have the decency to admit that you are neophytes at best and go and learn your trade properly.

Sorry if this sounds a little harsh, but I've spent far to much of my career wiping drool out of people's codebases.

@ count ludwig 

Posted Friday 29th February 2008 13:23 GMT

Flame

you're "or even" code is worse than JP's code - at least thats right a few times

your code will always return 28. even if it would run (missing '$')

average reg reader braincells seems to be on a downer here.

Kudos... 

Posted Friday 29th February 2008 13:24 GMT

...to Ford for getting it right as my car proudly stated the date as 29/02/2008 this morning :)

@ Stuart Jones 

Posted Friday 29th February 2008 13:26 GMT

Erm, the 1904 date system only works for dates starting at 1904.

So actually less useful than the flawed 1900 date system, which at least only requires a modifier to the result of an equation

=WEEKDAY("2/16/1900",1)+1

(If you were using the 1904 date system, the above formula would return #VALUE! error.

Oh FFS..."look at me I'm different" sheesh 

Posted Friday 29th February 2008 13:28 GMT

Boffin

> "How do you explain to a five-year-old, that they won't receive a birthday card

> from Geoffrey over at Toys R Us this year

You don't. Why not just enter 28th Feb and stop acting like you're special and hard done by?

Peter Mooncake Fatang-Gribbet de Bagabushtit's kids probably aren't happy about a 20 character field length limit on get-a-life dot com's site...but, here's the rub, Dad made sure they still got their PS3 without complaint.

Forget the leap year 

Posted Friday 29th February 2008 13:31 GMT

Coat

I think we should just have 365.25 days per year instead. No more leap year bugs, it can't be that hard can it...... OH GOD NO!!!11111one

Although that 0.25 is my kind of working day :o)

Nortel 

Posted Friday 29th February 2008 13:55 GMT

Coat

Up to thier usual tricks, all the systems have the correct date 29/02/08 however the i2004 sets have a "feature!" where they refuse to see the date so it's currently 1st March

My nortel support says it will "sort itself out" tomorrow.

Meantime everytone thinks im a moron.

joy

coat cos im not paid for today so im off down thepub.

Sign my petition... 

Posted Friday 29th February 2008 13:59 GMT

Coat

...to deploy giant robots that will speed up the earth's orbiting of the sun until it completes its trip in 360 days even. Then all our months will be exactly 30 days, and we will no longer have to suffer this, possibly the oldest of all still-living stupid programming errors (our birthdates and all other historical dates will be reset to the start date of the new calendar, in order to avoid any backward compatibility issues).

@Gordon Matson 

Posted Friday 29th February 2008 14:37 GMT

Happy

Well played.

Grrrrrrrrrrrrrrrrrrrrrrrrrr 

Posted Friday 29th February 2008 14:38 GMT

Flame

"How do you explain to a five-year-old, that they won't receive a birthday card from Geoffrey over at Toys R Us this year, because the Toys R Us computer has no way to recognize their birthday?" asks Society spokeswoman Raenell Dawn

Picky point!: Any five year old who is having their 5th birthday on 29th Feb 2008 is a liar.

Now as they didn't get a 3rd birthday card then not getting a 4th birthday card is not going to cause too much distress. What you don't know won't hurt you. Does a 3/4 year old really worry about the fact that a stupid cartoon Giraffe is not going to send out a card and it will now ruin his/her birthday - I think not.

This is just a ego trip by the adults to pick on a high profile "Won't someone think of the children" issue for the sympathy vote when they should be campaigning against the ability to apply this to the real world such as putting birth dates into sites that serve a real purpose such as Shopping or Holiday booking.

Sorry but you have lost my sympathy on this one by not getting to the real point of the issue.

Ladies and Gentlement, time please. 

Posted Friday 29th February 2008 15:04 GMT

Quite simple we just change the seconds unit.

I know a lot of you will want to change to the minute or the hour, but imagine the confusion that will cause!

We are currently 5 hrs, 48 mins, and 46 seconds a drift.

Thats a whopping 20, 926 seconds out.

365 * (24 * 60 * 60) = 31, 536, 000 seconds is what we want as a year.

So, a second is now 1.0006635591070523 of the old seconds or as we now refer to them as, 'dark seconds'.

Now some may be wondering about those born today, well quite simply we all have to recalculate our birthdays, the baseline is the date of the founding of the Old Swiss Confederacy (they make cuckoo clocks so seems apt) 1291, for ease of use we will make it the first moment of that year.

This message bought to you by - Watchmakers of the World - "Watchmakers do it with precision."

Universe 2.0 

Posted Friday 29th February 2008 15:05 GMT

Boffin

You see this is why the world should be designed by software developers.

Dates wouldn't be so complicated (there'd be an easy way to work out Easter, for example); everybody would be assigned a GUID as a name when born; you'd be able to write a parser for every spoken language in 64K of compiled code.

I personally can't wait until the machines take over and get rid of all this nonsense.

@Mighty Spang 

Posted Friday 29th February 2008 15:08 GMT

Paris Hilton

"your code will always return 28. even if it would run (missing '$')"

You're right, I meant % (mod operator) not / (div). (What language is this anyway?)

"average reg reader braincells seems to be on a downer here."

Ouch! Paris because... maybe I deserved that.

Mod 4 is ... 

Posted Friday 29th February 2008 15:17 GMT

Probably quite adequate for date handling on most of these systems. True 1900 was not a leap year but any one trying to enter 29 Feb 1900 as a DOB is probably lying anyway. (NOTE THE PROBABLY). There may we be some 108 year old trying to register at Toys R Us or YouTube.

Still it's quite fun imagining some company big wig being treed by a posse of toddlers.

Wondering... 

Posted Friday 29th February 2008 16:40 GMT

Coat

Was wondering if people born on February 29th piss off astrologers...

Now, what do we do about February 1751 

Posted Friday 29th February 2008 17:25 GMT

Coat

Or, if it comes to that, 1900 in St. Petersburg.

From the Calender (New Style) Act 1750

In and throughout all his Majesty’s dominions and countries in Europe, Asia, Africa, and America, belonging or subject to the crown of Great Britain, the said supputation, according to which the year of our Lord beginneth on the twenty-fifth day of March, shall not be made use of from and after the last day of December one thousand seven hundred and fifty-one; and that the first day of January next following the said last day of December shall be reckoned, taken, deemed, and accounted to be the first of the year of our Lord one thousand seven hundred and fifty-two;

(The green coat with the gold buttons, please, the one which matchs my waistcoat and breeches.)

Hours, minutes, seconds, and days, Oh My! 

Posted Friday 29th February 2008 18:03 GMT

I worked with two people who were born on leap day (different years!), and they tell me that their birthday is "the day after February 28th". This seems very logical to me.

Of course, time should be reckoned by proper Register Units: Microfortnights!

Now look at your watch, and see if the "day of month" thing is proper. I was told of a digital watch that (because it didn't keep the year, so it is excusable), made March 1 after Feb 28. Then I was told that it was pretty smart, in that if you turned it back on March 1, it went to Feb 29. Now that was cool.

I suspect that Lotus 1-2-3 just used year%4 to determine leap year. Microsoft didn't understand, so it copied the bug. Now it wants the bug^H^H^Hfeature documented (and standardized!). Why does this sound like them.

Apologies... 

Posted Friday 29th February 2008 18:41 GMT

Apologies to the author, I just realised that I mis-read the article, and thought that 1900 was a leap year and that Excell was right, then banged on about it sanctimoniously. Sorry, I am a tit.

@Stuart Morrison 

Posted Friday 29th February 2008 20:11 GMT

Happy

>A person born on Feb 29th may have had five 'genuine' birthdays but as they have >been alive for 20 years they are 20 years old, not 5 years old.

Technically a person born on Feb 29th has had ONE 'genuine' birthday. How/When they choose to celebrate that occurrence is up to them.

That Lotus Bug 

Posted Saturday 1st March 2008 01:34 GMT

Unhappy

Lotus has had the 1900-is-a-leap-year "bug" as long as I've been using it, since release 3.1 for DOS, and the most recent version I've used is the same.

AFAIK, Excel has always recorded dates the same way simply for compatibility purposes, but these days the compatibility would be with older versions of Excel, not with Lotus.

What I don't know, and perhaps some El Reg reader with cyber-antiquarian interests can enlighten us on, is whether this "bug" originated with Lotus. Or was it a deliberate effort to make Lotus compatible with Visicalc or some other pre-Lotus spreadsheet?

The use of 1 Jan 1900 as the reference era for spreadsheet dates, presumably due to hardware issues relating to internal representation of numbers, is an interesting example of failure to foresee possible future uses for software. If the Julian date had been used instead, it would be dead easy to record any historical date in a spreadsheet because the Julian date refers to an era about 4700 BCE, which afaik predates recorded history.

As matters stand (or stood, for a long time -- does any spreadsheet implement Julian dates?) if you want to record arbitrary historical dates in a spreadsheet, you have to roll your own.

Excel's leap year "bug" is highly unlikely to affect you 

Posted Saturday 1st March 2008 03:41 GMT

Flame

The justification for Excel's 1900 leap year, as found in lots of stories on the net, is that this was a bug copied from Lotus 1-2-3 for compatibility. I haven't verified this story, in fact I've never even seen Lotus 1-2-3. But the nature of the Excel bug is worth thinking about. VBA programmers among us probably know that Excel stores dates as an integer, the number of days since January 1, 1900. Take a "date" value from an Excel cell, and you get a number, and then you have to send that number back to another Excel routine to get a sensible date out of it. End-users never actually see this "number of days" on their Excel display because it's converted into a human-readable format according to their locale.

Assume that the starting date is 31 December 1899 and the bug is resolved. Then the "leap year" bug affects only people who need to know the number of days between one of the fifty-nine days from January 1 to February 28, 1900 and any date after 1 March 1900, and also the possible erroneous entry of February 29, 1900.

But, if people are dealing with dates in January or February 1900, they almost certainly will also need to deal with 1899, and 1898, and so on, in which case Excel's default way of storing dates won't be of use anyway, because it doesn't go back beyond 1/1/1900.

So although all good Reg whiners^H^H^H^H^H^Hcomment writers love whining in general, and whining about Microsoft in particular, this particular "bug" is a storm in a teacup.

Code confusion 

Posted Saturday 1st March 2008 03:53 GMT

It is easy.

In PHP: $leap=(is_int($year/4) && (!is_int($year/100) || is_int($year/400)))?true:false;

The code above in "surely this is easy" does not work.

"if(remainder($year/4)==0)" only takes account of the divide by 4 part, not the divide by 100 or 400 part.

"$febDays = ($year\4==0) ? 29 : 28;" is missing an essential component and will only have feb 29th in the year 4AD :-P

sweet fancy Moses... 

Posted Saturday 1st March 2008 13:33 GMT

Stop

If the card from the darn giraffe over at the early-mindless-consumerism-instructor is the worst problem you have in your 5-year-old's life: CONGRATULATIONS

If it's so gosh-darned important, register your sprog for both 28/2 and 1/3 so he'll get two cards from the plastic giraffe and you can tell him how extra special his birthday is because even the mighty R Us computer can't handle it so he gets two cards as compensation, because that's how special the little prince is. *running, screaming*

Leap back in time!! 

Posted Saturday 1st March 2008 13:49 GMT

Paris Hilton

This might explain why the toysrus.co.uk site does appears to actually be about 4 years out, prompted by the article I went for a wander on there and found the sign up for the 'Gamers Club' - once you fill in the normal guff, you get to select what system(s) you have from : PlayStation 2; PSone; Xbox; Nintendo GameCube; PC; Nintendo Game Boy Color; Nintendo Game Boy Advance/SP; Nokia N-Gage, not exactly embracing the latest gaming technology. It's this attention to detail that makes me think the leap 'error' is going to take a while to be fixed.

Paris? She'd know what to do if her date had a digit that didn't seem to fit.

Feb 29th ? Does not Exist. 

Posted Sunday 2nd March 2008 17:47 GMT

Unhappy

At least that's the opinion of two prominent ftp client libraries in the java world.

The guilty culprits are:

Apache commons.net FTPClient

Apache Ant's inbuilt ftp client.

To be fair the former fixed it 3 days ago, and the later fixed it sometime last year (but forgot to release a new version containing the fix).

(Both failed to recognise files dated February 29th).

@Sohail 

Posted Monday 3rd March 2008 11:18 GMT

Gates Horns

Im not saying your wrong. I have no idea about the bug.

BUT your 3 references are all pro MS. Have you a quote from an independent or IBM?

So it's Mitch Kapor word

verses

1. Microsoft (http://support.microsoft.com/kb/214326)

The horses mouth

2. A "well documented bug" (Shakje quote)

MS developer

3. Joel Spolsky (http://www.joelonsoftware.com/items/2006/06/16.html)

Head of Excel team.

This is funny 

Posted Monday 3rd March 2008 21:52 GMT

Thumb Up

Some of these comments are really funny. :-)

Especially The Other Steve's rant with which I totally agree even though I'm not a developer.

/Prathlev

A simple solution 

Posted Tuesday 4th March 2008 01:22 GMT

Boffin

my @mdays = (31,28,31,30,31,30,31,31,30,31,30,31);

if ((($year % 4 == 0) && ($year % 100 != 0)) || ($year % 400 == 0)){$mdays[1] = 29;}

Then use the @mdays array (days in each month) to print out days in your y/m/d selector, perform calculations, or whatever. The conditional equation contained in the IF statement above will compute leap years accurately, including the non-leap year at the end of every century and the end-of-century-IS-a-leap-year every 400 years. Therefore this equation remedies both the 1900 bug AND the lesser-known 1600/2000/2400 bug (these are leap years despite being century years).

Feb 29? 

Posted Tuesday 4th March 2008 21:05 GMT

Alien

I don't know the exact law, but in Brazil the parents decide whether they want the official birthday to be Feb. 28 or March 1, I think almost nobody registers their child as born on Feb. 29, to avoid confusion or embarrassment. At least I've never met anybody with that birthday...

Just to really confuse matters 

Posted Tuesday 4th March 2008 22:01 GMT

Jobs Horns

Feb 29 is day 60 of a leap year. In any other year Mar 1 is day 60. Therefore "leapers" simply have their birthday on day 60. March 1 babies are welcome to

join in.

However.....

Everybody with a birthday after day 60 must celebrate their birthday one day earlier (in the calendric sense) in a leap year.

Which means that the poor bastards born on day 366 (Dec. 31) in a leap year really really don't get birthdays but once every four years (longer, if a century year intervenes)!!

Clear now?

Don’t Miss

SunSun's surviving staff hit with 'motivation' missive

Exclusive Code: Your solace, our savior

Ubuntu teaser Ubuntu's Karmic Koala bares fangs at Windows 7

Review Shuttleworthian scrap

AppleChange your views: OS X tags exploited

Mac Secrets Apple windows insider

JavaSun preps cell-phone Java plan for netbooks

OpenWorld 09 Modules not globules