13
$\begingroup$

In autumn of the year 2003 an old man was asked about his age. He answered: "I was born on a Sunday morning in summer and I celebrated my seventh birthday on a Sunday morning too!"

How old was the man, when he was asked about his age in 2003?

$\endgroup$
23
$\begingroup$

There are a few tricksy ways to make this work (e.g. by bending semantics with a birthday on 29 February in Southern Hemisphere summertime, and claiming that 28 years later - when the Gregorian calendar usually repeats itself, with all dates falling on exactly the same days of the week - it's technically "only my seventh birthday", for instance...). However, in the absence of a tag, here's a solution that relies purely on the historical fact that:

the year 1900 was not a leap year. Because of this, the man could have been born on any Sunday in the Northern Hemisphere summer of 1896 (e.g. on Sunday 28 June 1896) or any Sunday in the Southern Hemisphere summer of 1896-7 (anywhere as late as Sunday 28 February 1897), and then 7 years later in 1903/4 he would turn 7 on exactly the same day of the week as he was born (a Sunday) since no leap days have been added to the calendar in the years he has lived through.

(NB In the intervening years he would have turned 1 on a Monday, 2 on a Tuesday, 3 on a Wednesday, 4 on a Thursday, 5 on a Friday, and 6 on a Saturday, before turning 7 on a Sunday once again, since a non-leap year of 365 days cannot be exactly divided into weeks, consisting as it does of 52 weeks and 1 additional day.)

This means that in the autumn of 2003 the old man would be:

107 years old if in the Northern Hemisphere (having already had his summer birthday that year) or 106 years old if in the Southern Hemisphere (with his 107th summer birthday yet to come) - either way, very 'old' indeed!

(Of course, the man may also have moved from one hemisphere to the other in his lifetime - but let's not go there, as it's already confusing enough as it is!)

$\endgroup$
9
  • 4
    $\begingroup$ Regarding your preface to your answer: He might've celebrated his seventh birthday not on the birthday itself. $\endgroup$
    – msh210
    Apr 11 at 6:02
  • 3
    $\begingroup$ @msh210 Yes, that would definitely make for a very interesting puzzle. "A man was born, and had a seventh birthday. How old is he?" $\endgroup$
    – Bass
    Apr 11 at 12:36
  • $\begingroup$ Since no exact year can be determined, the old man could've been born as early as 1893 or as late as 1899, for an age range of 104–110. $\endgroup$
    – SQB
    Apr 11 at 14:08
  • 4
    $\begingroup$ @SQB But then there would be a leap year before the man's 7th birthday - either in 1896 or 1904 - which means he would turn 7 on a Monday instead... $\endgroup$
    – Stiv
    Apr 11 at 16:02
  • 2
    $\begingroup$ @COTO Using Southern Hemisphere geography allows for some tricksy solutions involving the man's birthday being on Feb 29, which is Southern Hemisphere summertime (the equivalent of Aug 29 in the North...). If in one leap year Feb 29 falls on a Sunday, 7 leap year cycles later it will do again, and you can start playing the semantics game and saying "It's technically only my seventh birthday...!" $\endgroup$
    – Stiv
    Apr 11 at 19:23
4
$\begingroup$

If it weren't for leap years, the Gregorian calendar would repeat every 7 years. But due to the 4-year frequency of 29 Feb, it actually repeats every 28 years, except in some rare cases.

So the task is to find one of those rare cases: a 7-year span without a leap year.

Any 7-year span containing 1900 and not 29 Feb in either 1904 or 1896 would suffice. So being born on a Sunday in 1896 after Feb would result in turning seven on a Sunday in 1903. Being born before March in 1897 would result in turning seven in 1904 on the same weekday. Both yield the same result for the autumn of a following year: the old man was 107 years old.

$\endgroup$
3
$\begingroup$

I wrote a little bit of code that attempts to work this out. It searches every date from an arbitrary point in time that gives the man a chance to be up to 130 years old, and checks to see if that date and the date seven years later are both Sundays. If this check is true, it returns the date as the date of birth and calculates the age.

Paste this code into a new module in Excel VBA and run CalculateAge(). Spoiler alert: this will give you the answer (the answer is also in the spoiler block at the bottom).

Sub CalculateAge()

   Dim birthDate As Date
   
   birthDate = GetDOB()
   
'   The last day of autumn 2003 was 22nd December.
   MsgBox "Age: " & DateDiff("yyyy", birthDate, "22-Dec-2003") & Chr(13) & "Date of Birth: " & birthDate, vbOKOnly, "Old Man's Age"

End Sub

Function GetDOB()

   Dim startDate As Date
   startDate = DateAdd("yyyy", -130, "22-Dec-2003")
   Dim loopLength As Long
   loopLength = CLng(137) * 365

   For i = 0 To loopLength
      If Weekday(startDate + i) = 1 And Weekday(DateAdd("yyyy", 7, startDate + i)) = 1 Then GetDOB = startDate + i
   Next i

End Function

And the answer is...

A date of birth of 28th February 1897, which would make him 106 years old in autumn 2003. The result also means he was born in the Southern Hemisphere.

$\endgroup$
6
  • 7
    $\begingroup$ Welcome to Puzzling! While you have given code that when run gives an answer, you haven't actually given an answer in your answer. This answer isn't self-contained, as not all people will be willing to run a stranger's code just to find an answer that should be contained in your answer. $\endgroup$
    – bobble
    Apr 11 at 18:13
  • $\begingroup$ Thanks! I shall edit my answer... with the answer. :) I thought it might be fun for people to plonk the code in Excel but I would understand if they don't want to do that (you can see that the code is innocuous though). $\endgroup$
    – Robot Head
    Apr 11 at 19:15
  • 2
    $\begingroup$ If there were more than one possible answer, this particular program would not find them. In particular, there are many better suited days in the summer of the previous year, which the program finds, but just discards. Also, the southern hemisphere is explicitly mentioned and justifiably deprecated in the very first sentence of the accepted answer. Finally, Excel VBA? Out of all possible languages? :-) $\endgroup$
    – Bass
    Apr 11 at 21:27
  • $\begingroup$ Ha ha, I knew someone would comment on the use of VBA! It's the most convenient - it avoids having to start a new VS project. It is true that it produces only the first answer it finds. Also, as far as I could see, the southern hemisphere was deprecated in order to arrive at an answer, and doesn't necessarily hold true because, as you rightly point out, there are multiple possible answers. The fact that my code finds an answer that works if the man was born in the southern hemisphere, which isn't mentioned at all in the question, means the deprecation in the accepted answer is arbitrary. $\endgroup$
    – Robot Head
    Apr 12 at 10:19
  • $\begingroup$ Doesn’t Excel incorrectly consider 1900 to be a leap year? $\endgroup$ Apr 12 at 14:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.