He : What is your age?
She : 35 years old, ignoring the intervening Saturdays and Sundays.
What is her real age?
Puzzling Stack Exchange is a question and answer site for those who create, solve, and study puzzles. It only takes a minute to sign up.
Sign up to join this communityHe : What is your age?
She : 35 years old, ignoring the intervening Saturdays and Sundays.
What is her real age?
Based on my initial intuition, I'm guessing it's
49
Since
It's as if she only lived for 5 days a week instead of 7, so she actually lived $\frac{7}{5}$ longer than her reported age.
Her real age is
35.
If you ignore all the Saturdays and Sundays,
the number of days lived is 5/7 of what it would normally be, but the number of days in a year is also 5/7 of the norm.
(fun answer)
We do not know. Because women are known to lie about their ages all the time, even in riddles.
Ok, I've got a weird solution for this but here goes. If we go with the assumption that in this scenario your recorded age only increases on the date of your birthday each year and only then when that date falls on a weekday. If it was a weekend (Saturday or Sunday) in a particular year then you wouldn't increase your age.
Taking that I ran some code to work out for each date from today's date to the start of the year how old you would be using these mechanics.
The results came up that, depending on your birthday you could be anywhere between 47 (26 dates), 48 (110 dates) 49 (96 dates) and 50 (9 dates) years old in reality and still have the age of 35. The only outlier to this would be if you were born on February 29th (a Leap Year). For these lucky people if you could theoretically live that long they would have an age of 197.
The code I used is below
Sub CalcAge()
Dim datBDay As Date
Dim datTempDate As Date
Dim iActAge As Integer
Dim iCnt As Integer
datBDay = Date
While datBDay > #7/18/2018#
iCnt = 1
iActAge = 35
While iCnt < iActAge
datTempDate = DateAdd("yyyy", 0 - iCnt, datBDay)
If Weekday(datTempDate, vbMonday) > 5 Then
'falls on weekend therefore increases age
iActAge = iActAge + 1
End If
iCnt = iCnt + 1
Wend
'Leap Year Calculations
' While iCnt < iActAge
' datTempDate = DateAdd("yyyy", 0 - iCnt, datBDay)
' If isLeapYear(Year(datTempDate)) Then
' If Weekday(datTempDate, vbMonday) > 5 Then
' 'falls on weekend therefore increases age
' iActAge = iActAge + 1
' End If
' Else
' iActAge = iActAge + 1
' End If
'
'
' iCnt = iCnt + 1
' Wend
'
Debug.Print "Actual Age if born on " & datBDay & " is :"; iActAge
datBDay = datBDay - 1
Wend
End Sub
Public Function isLeapYear(yr As Integer) As Boolean
isLeapYear = (Month(DateSerial(yr, 2, 29)) = 2)
End Function
There might be some innacuracies as worked this up quickly but just wanted to look at this from a different angle.
I think
$49$
Calculation:
Let $X =$ her actual age.
There are $260.7$ week days in a year ( $365\div 7 = 52.14$ and $52.14 \times 5 = 260.7$)
So...
$35$ is to $X$ as $260.7$ is to $365$
$35\div X = 260.7\div 365$
Solving for X by cross multiplying
$260.7X = 35 \times 365$
$260.7X = 12,775$
$$X = 49.00$$
>!
as opposed to >
, in order to not spoil the answer for users attempting to solve the puzzle. I have proposed such an edit :)
$\endgroup$