Problemet med Stör ej-systemet kan vara relaterat till hur systemet utformades

  Det vet ni alla Stör ej-systemet i iOS fungerade inte för många användare den första dagen i år, och igår sa jag det till dig vi kommer att kunna använda den igen från och med den 7 januari. Apple sa inte varför systemet slutade fungera korrekt, det berättade bara för oss när allt kommer att återgå till det normala, men de från Macworld har en möjlig förklaring. De hävdar att sättet man tänkte på systemets källkod genererar ett problem att fungera den första dagen på ett kalenderår, allt har att göra med hur datumet sattes med ISO-systemet.

Nu, till programmerare som har arbetat mycket med datum- och tidshantering (som jag; jag skriver flygbolags flygsystem för att leva, som kräver mycket tung tidszonsmatematik) "det gick sönder under ungefär den första veckan i år" antyder omedelbart ett måttligt okänt problem relaterat till ISO-veckodatumet. Det här är en lite konstig definition av året som du får från många datamanipulationsbibliotek genom att ange att du vill ha året som "ÅÅÅÅ", till skillnad från det vanligare "åååå".

Så för 2012 kommer den 1:a-6:e januari att visas som en del av 2012 om utvecklaren anger "ÅÅÅÅ" i sin datumsträng, snarare än att vara en del av 2013. Detta betyder att när DND automatiskt slås på, kommer det att har ett beräknat avstängningsdatum någon gång under 2012, vilket nu ligger i det förflutna så det kommer aldrig att stängas av. Jag gjorde en gång detta misstag i min egen kod, eftersom det är väldigt lätt att skriva "ÅÅÅÅ" istället för "åååå"; Det verkar som om någon namnlös Apple-ingenjör har gjort samma sak i iOSs Stör ej-funktion, men bara i den automatiska avstängningstiden, inte i tidsdelen för inkoppling. I mitt fall fångades problemet i automatiserade tester och gick aldrig live. Apples ingenjör har haft mindre tur.

  Du kan hitta hela förklaringen på Macworld, om du är säker på att du kommer att förstå den och behöver den på något sätt.

UPPDATERING: Macworld hävdar att deras förklaringar är felaktiga, så ignorera dem.