I wonder if day length is given separately in a table prior to the question? I’m not sure what they wanted except maybe seconds?
It’s the length of the string. The number of characters is 6. It’s a play on words and a question.
I’m not really a fan of this kind of question. Especially if there’s enough questions that time will be an issue for most. Because at first glance it’s easy to think the answer might be the length of a day.
There shouldn’t be a need to try to trick people into the wrong answer on an open question. Maybe with multiple choice but not an open answer question.
It relies on critical thinking (meaning thinking about your own thinking), basically, and most students aren’t very good at that.
Software engineering as a discipline is pretty much a series of trick questions.
I get your point about it being a trick question but I think in this case it’s pretty reasonable that you would see code like this in real life. Where the programming metaphor and your understanding of the real world clash. It’s a very important skill to be able to spot the difference.
Most date libraries count to 23h 59m 59s then roll over to 00h 00m 00s. So the answer is 23 hours, not 24.
Edit: I’m big dum dum. It’s asking string length of “Monday”, thus 6.
You’re also mistaken about the time too. The first second of the day is 00:00:00 the last second of the day is 23:59:59
That’s still a full and exact 24 hours.
Yes, it’s a full 24 hours, but a library doesn’t use 24:00:00 to represent the last hour, it’s 23:59:59. Once it hits 24:00, it rolls over to 00:00:00.
Hence my initial error of answering 23.
It’s not valid, but I don’t edit out erronous answers because I believe all data should be preserved, no matter how dumb it makes one look.
Conversations about language aside, the error is that “Monday” is a string with a length of 6.
What is the type of the variable day
though? As it is we have to make multiple assumptions, based on popular programming languages, about the internals of the string
type and the print
function to assume that it prints “6”.