12:01 AM



  • I've seen several things recently that seemed to imply that the day begins at 12:01 AM. Most recently, it was reported that NBA free agents were allowed to sign contracts starting at 12:01 AM Eastern Time. A few days before that, a client wrote some specifications for me that included mention of 12:01 AM, a time which to my eyes looks arbitrary and random.



    I realize that people who aren't programmers will never really be as comfortable counting from zero as I am... but who in their right mind thinks the day begins at 12:01 AM? Why choose one minute past midnight? Why not one second past, or one millisecond past? Hell, why not just embrace the stupidity completely and start the day at 1:00 AM?



    Has anyone else run into this? Am I crazy? My recollection is that I always knew the day started at 12 AM, even before I ever programmed or even used computers, and that we were taught this in school and tested on it. I don't expect non-programmers to have a deep grasp of mathematics... but telling time? Yeah, I expect that, and if this expectation is unreasonable then I think educational standards really have slipped a great deal.



  • 12:00 AM on day X -> midnight on day X -> two timestamps exactly 86400 apart



  • @Ben L. said:

    12:00 AM on day X -> midnight on day X -> two timestamps exactly 86400 apart

    Are you implying that 12:00 AM is not Midnight? Perhaps I should have been less Americocentric in my descriptions. 12:00 AM is 0:00 to the rest of the world, and unless I'm completely mistaken, that's when the day starts, and I'm not even necessarily talking about computers here. This is third grade stuff here. There doesn't have to be any notion of timestamps. Sheesh, just look at a damn clock. Doesn't it make sense for the day to start with all three hands pointing straight up? Why should the minute hand be offset slightly when the day starts?



  • @bridget99 said:

    I've seen several things recently that seemed to imply that the day begins at 12:01 AM.
    No, that's not what is going on.@bridget99 said:
    Am I crazy?
    Yes @bridget99 said:
    My recollection is that I always knew the day started at 12 AM
    Technically, yes.  12:00 AM is generally accepted by normal rational people as the start of the day.  However, the use of 12:01 AM has nothing to do with altering the start of a day.  It's about selecting a time that is unambiguous and indisputable.  Is 12:00 AM really the start of the day?  Or is it the end of the day?  Do you really believe that there is nobody anywhere who will try to argue that point if it's to their benefit to claim one or the other?  Due to the unfortunate need to protect yourself from lawyers, people who post on message boards and other pedantic dickweeds who may try to make some ridiculous, convoluted claim to the contrary, many people use 12:01 AM since there can be no disputing that 12:01 AM puts you into the next day.



  • @bridget99 said:

    @Ben L. said:
    12:00 AM on day X -> midnight on day X -> two timestamps exactly 86400 apart

    Are you implying that 12:00 AM is not Midnight? Perhaps I should have been less Americocentric in my descriptions. 12:00 AM is 0:00 to the rest of the world, and unless I'm completely mistaken, that's when the day starts, and I'm not even necessarily talking about computers here. This is third grade stuff here. There doesn't have to be any notion of timestamps. Sheesh, just look at a damn clock. Doesn't it make sense for the day to start with all three hands pointing straight up? Why should the minute hand be offset slightly when the day starts?

    Arguably, 12:00 AM could represent 00:00 or one minute after 23:59 on the same day.



  • @El_Heffe said:

    @bridget99 said:

    I've seen several things recently that seemed to imply that the day begins at 12:01 AM.
    No, that's not what is going on.@bridget99 said:
    Am I crazy?
    Yes @bridget99 said:
    My recollection is that I always knew the day started at 12 AM
    Technically, yes.  12:00 AM is generally accepted by normal rational people as the start of the day.  However, the use of 12:01 AM has nothing to do with altering the start of a day.  It's about selecting a time that is unambiguous and indisputable.  Is 12:00 AM really the start of the day?  Or is it the end of the day?  Do you really believe that there is nobody anywhere who will try to argue that point if it's to their benefit to claim one or the other?  Due to the unfortunate need to protect yourself from lawyers, people who post on message boards and other pedantic dickweeds who may try to make some ridiculous, convoluted claim to the contrary, many people use 12:01 AM since there can be no disputing that 12:01 AM puts you into the next day.

    I can't say what the NBA's motivation was for using 12:01, but the end user I was working with made it pretty clear that he meant to capture whole days, and that he meant for them to range from 12:01:00 to 12:00:59. I chalked it up as yet another example of how end users still haven't completely discovered zero, and I did nothing in my implementation to prevent SQL Server from delineating days correctly. If I get fired over a minute, it's their loss.



    As for this legalistic gray area that you seem to imply people might try to find between 12:00 and 12:01, why is a minute sufficient to eliminate it, but not a second? WTF is so magical about one minute? As I said in my first post, if one really wants to go down this incorrect road, then it seems to me that one would end up starting the day at 01:00. That actually gibes with the way non-programmers count: the day consists of 24 hours, and we can count them using those oh-so-popular "natural" numbers : hour 1, hour 2, and so on. 12:01 is just stupid though. The people who come up with 12:01 aren't counting minutes, they just have a weird aversion to zero that dates back to their earliest (misguided) mathematics lessons.



  • @bridget99 said:

    I was working with made it pretty clear that he meant to capture whole days, and that he meant for them to range from 12:01:00 to 12:00:59.

    YOU BASTARD


    That's only 99.9988426% of a day. WHERE IS THE REST OF IT?



  • @bridget99 said:

    As for this legalistic gray area that you seem to imply people might try to find between 12:00 and 12:01, why is a minute sufficient to eliminate it, but not a second? WTF is so magical about one minute?
    You've just proven my point.



  • @Ben L. said:

    @bridget99 said:
    I was working with made it pretty clear that he meant to capture whole days, and that he meant for them to range from 12:01:00 to 12:00:59.

    YOU BASTARD


    That's only 99.9988426% of a day. WHERE IS THE REST OF IT?

    If you include the endpoints and count whole seconds, it's exactly 86,400 seconds. They just aren't the 86,400 seconds that comprise a single day.



  • @El_Heffe said:

    @bridget99 said:

    As for this legalistic gray area that you seem to imply people might try to find between 12:00 and 12:01, why is a minute sufficient to eliminate it, but not a second? WTF is so magical about one minute?
    You've just proven my point.

    You're point is that 12:01 isn't meant to be the start of the day, just some arbitrary point-in-time that happens to look like midnight - for - dummies, right? Why not just choose 06:00 then? If we're just choosing arbitrary times, one minute after midnight seems like a damned unlikely choice. I'll grant you this, though: your argument is basically the only sensible justification for using 12:01 that I can imagine. At least you're not trying to say that the day starts at 00:01 ("cuz only nerds count from zero.")



  • Only nerds count from zero.



  • @flabdablet said:

    Only nerds count from zero.

    That's basically the explanation I was afraid of. It frightens me that the term "nerd" has been cheapened to such an extent that people who can tell time correctly are now "nerds." My God... people with real degrees in science and mathematics are so far beyond normal, non-nerd culture these days that we're like the navigators from Dune or something.



  • @bridget99 said:

    people with real degrees in science

    Kelvin degrees?


  • Discourse touched me in a no-no place

    @bridget99 said:

    I've seen several things recently that seemed to imply that the day begins at 12:01 AM.


    [...]


    My recollection is that I always knew the day started at 12 AM
    Well since 12pm and 12am are exactly the same time (i.e. midnight,) they're trying to "disambiguate which (of the three) 12 o'clocks" they mean, specifically which midnight, by specifying some 'small' period minute past midnight which reduces the (assumed) ambiguities down to one. The fact that 12am is the start of the day and 12pm the end of the day doesn't seem to figure in most peoples' reasoning; i..e 12pm Thursday is the same time as 12am Friday.



    Since they can still keep the time to 4 digits by having that small period be a minute, most choose that. Using (milli-)seconds would require more digits. "Midnight at the start of <date>" 'requires more typing.'



  • @Speakerphone Dude said:

    @bridget99 said:
    people with real degrees in science

    Kelvin degrees?

    I don't know if there's anything like "absolute zero" for IQ... but I think that anyone who considers telling time properly to be "nerdy" must be pretty damned close. WTF kind of a society puts people through 12 years of mandatory school without managing to teach them to tell time? We're not sure the day begins at 00:00 so we add a minute just to be good and sure? Come on... that's pathetic. And the really sad thing is that this is a quinessentially American error. We cling to our 12-hour clock (which makes no sense) and we mint lawyers by the thousand and tremble in our boots at the sight of a free-standing zero. Meanwhile, every 8-year-old from Guatemala to Kazakhstan and beyond knows the day starts at 00:00, and would probably laugh heartily at anyone who says otherwise. Hopefully the rest of the world doesn't follow NBA free agency very closely. If they do, we look like idiots.


  • Discourse touched me in a no-no place

    @bridget99 said:

    We're not sure the day begins at 00:00 so we add a minute just to be good and sure?
    No, people are sure the day starts, and ends, at 00:00. Therein lies the problem - 00:00 is generally thought to be 'shared' between the two days it occurs between, so to unambiguously indicate which day is intended, without additional verbiage, a minute is added.



  • I've heard people being confused or arguing about whether midnight is 12a.m. or 12p.m. or neither, so if you're going to use a.m. and p.m, then it might be clearer to use 12:01.



  • @bridget99 said:

    @Ben L. said:
    @bridget99 said:
    I was working with made it pretty clear that he meant to capture whole days, and that he meant for them to range from 12:01:00 to 12:00:59.
    YOU BASTARD

    That's only 99.9988426% of a day. WHERE IS THE REST OF IT?

    If you include the endpoints and count whole seconds, it's exactly 86,400 seconds. They just aren't the 86,400 seconds that comprise a single day.

     

    Apart from the fact that end point inclusion is very tedious in time calculation, a day is not 86400 seconds. There are commonly days with 82,800, 86401, and 90000 seconds, although not by all ways of determining.


  • Discourse touched me in a no-no place

    @NSCoder said:

    I've heard people being confused or arguing about whether midnight is 12a.m. or 12p.m. or neither,
    Since neither mean 'midday' it's difficult to see how either of them couldn't mean midnight.



  • @PJH said:

    Well since 12pm and 12am are exactly the same time (i.e. midnight,)
    Wait... what?! If that's true, the american AM/PM time system is even more retarded than I thought. What comes after 11:59 AM?


  • Discourse touched me in a no-no place

    @Anonymouse said:

    @PJH said:

    Well since 12pm and 12am are exactly the same time (i.e. midnight,)
    Wait... what?! If that's true, the american AM/PM time system is even more retarded than I thought. What comes after 11:59 AM?

    Presuming you mean the next minute, 'midday.' Neither PM or AM - it is the M



    The 'm' in am and pm stands for meridiem, or translated into English, midday.

    am -> ante-meridiem -> before midday, so 12AM is 12 hours before midday which is midnight previous to that midday.

    pm -> post-meridiem -> after midday, so 12PM is 12 hours after midday which is midnight after that midday.



  • @NSCoder said:

    I've heard people being confused or arguing about whether midnight is 12a.m. or 12p.m. or neither, so if you're going to use a.m. and p.m, then it might be clearer to use 12:01.
    Well, there are two options:

    1. Use 'AM', 'PM', 'noon' and 'midnight'
    2. Use a 24-hour clock

     

    The most logical choice is #2, so it's obvious that it won't be chosen.

     



  • @PJH said:

    @Anonymouse said:
    @PJH said:
    Well since 12pm and 12am are exactly the same time (i.e. midnight,)
    Wait... what?! If that's true, the american AM/PM time system is even more retarded than I thought. What comes after 11:59 AM?
    Presuming you mean the next minute, 'midday.' Neither PM or AM - it is the M

    The 'm' in am and pm stands for meridiem, or translated into English, midday.
    am -> ante-meridiem -> before midday, so 12AM is 12 hours before midday which is midnight previous to that midday.
    pm -> post-meridiem -> after midday, so 12PM is 12 hours after midday which is midnight after that midday.
    Then what does a (digital) clock show as it is approaching (and passing) noon? ... 11:59 AM ... ??:00 AM/PM/nothing? ... ??:01 PM ...

     


  • ♿ (Parody)

    @Anonymouse said:

    @PJH said:
    Well since 12pm and 12am are exactly the same time (i.e. midnight,)

    Wait... what?! If that's true, the american AM/PM time system is even more retarded than I thought. What comes after 11:59 AM?

    It's not. It's either a British thing or an attempt at pedantic dickweedery (see subsequent PJH post about 12AM being the meridian). The convention in US time is that midnight is 12AM and noon is 12PM.

    As to the question of when the day starts...you should be asleep at midnight, so who cares?



  • now you got me confused ...



    i thought the day always started (expressed as hh🇲🇲ss) with 00:00:00 (first second of the day) and ended with 23:59:59 (last second of the day).




  • @bridget99 said:

    We cling to our 12-hour clock (which makes no sense) and we mint lawyers by the thousand and tremble in our boots at the sight of a free-standing zero. Meanwhile, every 8-year-old from Guatemala to Kazakhstan and beyond knows the day starts at 00:00, and would probably laugh heartily at anyone who says otherwise. Hopefully the rest of the world doesn't follow NBA free agency very closely. If they do, we look like idiots.
     

    For people with our kind of rationality, 0000 would be the midnight at the start of a day and 2400 would be the midnight at the end of the day. But in this case, we're talking about lawyers, whose idea of rationality should exist in a different universe to ours. After all, in lawyer land, a structured conditional like

    Party B agrees they

    1. shall not work for a competitor for 12 months
    2. shall not work for a competitor for 9 months
    3. shall not work for a competitor for 6 months
    4. shall not work for a competitor for 3 months
    5. shall not work for a competitor for 2 months

    from the end of the contract period.

    is considered [i]good[/i] coding style, not a WTF.

    As much as I like an opportunity to dump on Americans, in this case I think it's American lawyers that are incapable of dealing with zeroes, it doesn't neccessarily extend to the rest of the population. Besides, every Kazakh 8-year-old knows that the lawyers are going to win every season.

     



  • In the case of the contracts, a minute past midnight is just some arbitrary number that people agreed on for a particular event. Its coincidence that your client did the same thing, not some conspiracy to move the start of the day.

    I had a client once, whose shift times were a 7AM to 7PM day shift and a 7PM to 7AM nightshift. All pretty normal until I found out that the "day" a shift was associated with was the day in which the shift ended. For example, for a Friday, the Friday day shift was 7AM to 7PM on that Friday, while the Friday night shift started at 7PM on the preceding Thursday and went to 7AM on the Friday. It made doing some SQL queries fun, especially when they also had systems that considered a "day" to be midnight to midnight and I had to be doing joins between both representations of a "day".


  • ♿ (Parody)

    @OzPeter said:

    All pretty normal until I found out that the "day" a shift was associated with was the day in which the shift ended.

    Fiscal years are named in a similar fashion, i.e., for the calendar year in which the fiscal year ends.



  • @OzPeter said:

    All pretty normal until I found out that the "day" a shift was associated with was the day in which the shift ended.
     

    Weird. So the monday day shift was followed by the tuesday night shift that worked throughout monday night?

    Does not compute. I can understand "tuesday morning shift" but not naming it in such a way that is doesn't actually take place in that time interval.

     

    Having said that, we had our works Christmas Dinner in mid-January.



  • @OzPeter said:

    the Friday night shift started at 7PM on the preceding Thursday
     

    That makes no sense at all.



  • @Paddles said:

    For people with our kind of rationality, 0000 would be the midnight at the start of a day and 2400 would be the midnight at the end of the day.

    I don't even...



  • @boomzilla said:

    Fiscal years are named in a similar fashion, i.e., for the calendar year in which the fiscal year ends.
    Bah. Humbug .. there you go adding common sense to my rant!
    @Cassidy said:

    Weird. So the monday day shift was followed by the tuesday night shift that worked throughout monday night?

    Does not compute. I can understand "tuesday morning shift" but not naming it in such a way that is doesn't actually take place in that time interval.

    @dhromed said:

    That makes no sense at all.

    Yep .. it was a crazy system in my mind, and it made for crazy SQL queries when I had to group timed events (with full SQL timestamps) out of a range of shifts (selected by dates), combine them with other timestamped data that was based on "natural" days and then order the whole mess by shift for a report.

    But I wasn't there to fix their system, I was there to generate reports from the system. And the company was a rather large multi-national, so they weren't about to re-hash their entire system because I thought it was stupid.



  • When I was a kid and I watched Gremlins and they were all like, "don't feed him after midnight" I was annoyed and I was going, "after midnight but BEFORE WHEN!?" it's always after midnight you idiots, I'm like 8 years old and I know that.

    Anyway then he got monster tumors.



  • @Paddles said:

    For people with our kind of rationality, 0000 would be the midnight at the start of a day and 2400 would be the midnight at the end of the day.

    You mean 00:00 would be midnight at the start of a day and 23:59 would be the end of the day (not midnight, mind you), leaving 24:00 as a reference to the start of the next day.


  • ♿ (Parody)

    @blakeyrat said:

    When I was a kid and I watched Gremlins and they were all like, "don't feed him after midnight" I was annoyed and I was going, "after midnight but BEFORE WHEN!?" it's always after midnight you idiots, I'm like 8 years old and I know that.

    Yes, that always bugged me, too. I had to willfully suspend disbelief, which admittedly wasn't too difficult considering the original subject.



  • @Mr. DOS said:

    @Paddles said:
    For people with our kind of rationality, 0000 would be the midnight at the start of a day and 2400 would be the midnight at the end of the day.
    You mean 00:00 would be midnight at the start of a day and 23:59 would be the end of the day (not midnight, mind you), leaving 24:00 as a reference to the start of the next day.
    Dawn of The Final Day

     - 24 Hours Remain -



  • @Vanders said:

    @Paddles said:
    For people with our kind of rationality, 0000 would be the midnight at the start of a day and 2400 would be the midnight at the end of the day.
    I don't even...
    That's what ISO 8601 says.



  • @Sir Twist said:

    @Vanders said:
    @Paddles said:
    For people with our kind of rationality, 0000 would be the midnight at the start of a day and 2400 would be the midnight at the end of the day.

    I don't even...
    That's what ISO 8601 says.

    Absolve confusion:
    @http://en.wikipedia.org/wiki/ISO_8601#Times said:

    Midnight is a special case and can be referred to as both "00:00" and "24:00". The notation "00:00" is used at the beginning of a calendar day and is the more frequently used. At the end of a day use "24:00". Note that "2007-04-05T24:00" is the same instant as "2007-04-06T00:00".



  •  Dates and Times are indeed a big issue with law cases, and there is a call to standardise 'law time/date'.  Apart from 12:00am is new/last day issue they have big fights in contracts such as 'one year from from' '3 months from' etc, asshat lawyers would use the ambiguity to their advantage. Uk government recently got pulled over on this doozy.

     

     


  • @dhromed said:

    @OzPeter said:

    the Friday night shift started at 7PM on the preceding Thursday
     

    That makes no sense at all.

     

     It makes sense if you figure that they started their work on sunday night.  Since people tend to think of their work week starting on monday and ending on friday, night shift workers work week starts on sunday night, their mondays.  So thursday nights are their 'fridays'.  

    at least thats how I thought about it when I was on night shift some time ago

     


     



  • Regarding trying to avoid the legal ambiguity of whether 00:00 is the start or the end of the day:  It seems to me that the day ends at 23:59:59.99999999 repeating to infinity and the next day begins at 00:00. There should be no ambiguity.  But I was also told by my math teacher that 0.9999999 repeating is equal to 1 (because there is no number between the two, they must be equal), so maybe we still have the ambiguity.

    Why they choose 1 minute to resolve the ambiguity rather than 1 second or 1 millisecond?  Because it avoids having to write/speak seconds, milliseconds, etc. when litigating.


  • Trolleybus Mechanic

     The thing I hate about Monday 24:00  /  Tuesday 0:00...

     "Get me a list of all the people who have timestamps on Monday".

    Do you include Tuesday 00:00????

    Because things start to get fucked up when you do DATEDIFF.  You can't come up with a date range that is both 1 day long, and 23 hours long (datediff(day) == 0 && datediff(hour) == 24). It gets fun to do "all day" things.  Suppose someone books a room for an entire day, and you charge them by the hour.  Well, either they're going to be 23 hours (or ~23.999), or you mark the end of the booking on Tuesday 00:00-- and suddenly you calendar has to have a special case to know "no, seriously, no one is using the room on Tuesday. Yes, I know there is technically a booking that is partially in Tuesday, even if only briefly, but it isn't ACTUALLY in Tuesday.  If anyone asks, Tuesday is completely free.

    DECLARE @monday_end datetime
    DECLARE @monday_start datetime
    DECLARE @tuesday_start datetime

    SET @monday_start = '01-01-2012 00:00:00.000'
    SET @monday_end = '01-01-2012 23:59:59.000'
    SET @tuesday_start = '01-02-2012 00:00:00.000'

    SELECT DATEDIFF(day, @monday_start, @monday_end) -- result: 0. They are the same day
    SELECT DATEDIFF(hour, @monday_start, @monday_end) -- Result:  23

    SELECT DATEDIFF(day, @monday_start, @tuesday_start) -- result: 0. They are different days
    SELECT DATEDIFF(hour, @monday_start, @tuesday_start) -- Result:  24


    SELECT DATEDIFF(day, @monday_end, @tuesday_start) -- result: 0. They are different days
    SELECT DATEDIFF(hour, @monday_end, @tuesday_start) -- Result:  1


     


  • ♿ (Parody)

    @pauly said:

    It seems to me that the day ends at 23:59:59.99999999 repeating to infinity and the next day begins at 00:00. There should be no ambiguity.

    But...those are the exact same times!

    Let me introduce you to the concept of open and closed intervals.



  • Day: [00:00:00, 24:00:00)

     



  • Exactly. This is why, if you go to any bookmakers website and try and place a bet on the number of goals in a match being over/under a certain number, you will always see it written as "Over 2.5 goals". Obviously, there's no such thing as half a goal, but it means that if there are two goals scored, you don't get 100 people calling saying "I bet on 2+ goals - there were two goals so I win!"

    It's just so everyone knows where they stand.



  • @minkey said:

    at least thats how I thought about it when I was on night shift some time ago

    So when you worked thursday night into friday morning, did you come home and tell people you'd just done the "friday night shift"?

    That's what doesn't make sense to me.


  • Discourse touched me in a no-no place

    @Cassidy said:

    @OzPeter said:

    All pretty normal until I found out that the "day" a shift was associated with was the day in which the shift ended.
     

    Weird. So the monday day shift was followed by the tuesday night shift that worked throughout monday night?

    Does not compute. I can understand "tuesday morning shift" but not naming it in such a way that is doesn't actually take place in that time interval.

     

    Having said that, we had our works Christmas Dinner in mid-January.

     

    When do you get credited for your hours worked?  After you worked them, of course.  When did you finish working?  Tuesday.  You're looking at it from the POV of a regular person, not a payroll person.

     A more interesting question might be "why does third shift normally cross a day boundary, when we could have it start at midnight instead?" And the answer to that, unfortunately, is probably "because that's the way everyone's always done it."



  • Also things making not sense (possibly with an American cultural assumption; I have no idea):

    - Fall semester starts in the fall and ends in the winter
    - Spring semester starts in the winter and ends in the spring

    I feel like at least one of these ought to be called winter semester.



  • @FrostCat said:

    When do you get credited for your hours worked?  After you worked them, of course
     

    Yessss... but I don't get a pay packet marked "Pay for Sept" for hours worked in August. Although I do receive it then.

    @FrostCat said:

    You're looking at it from the POV of a regular person, not a payroll person.
     

    Probably. Same goes for "Baker's dozen" and "Bombay Duck".

    I know I'd find it confusing if someone told me I was doing "wednesday night shift" and it meant I worked tues night until wed morning (but wed night may have been mine). But meh...



  • @Xyro said:

    Also things making not sense (possibly with an American cultural assumption; I have no idea):

    - Fall semester starts in the fall and ends in the winter
    - Spring semester starts in the winter and ends in the spring

    I feel like at least one of these ought to be called winter semester.

    Because both semesters have at least one foot in winter, "winter semester" could refer to either of them.  For this reason, you can't just decide to refer to "winter semester" because different people will interpret it as meaning different things.  "Fall semester" and "spring semester" have the advantage that each can refer to only one of the two terms.

    Now, if someone will be so kind as to explain why Oktoberfest is in September....

     


Log in to reply