Het probleem met het Do Not Disturb-systeem kan te maken hebben met de manier waarop het systeem is ontworpen

  Dat weten jullie allemaal het Do Not Disturb-systeem in iOS werkte op de eerste dag van dit jaar voor veel gebruikers niet, en gisteren vertelde ik je dat we kunnen er pas vanaf 7 januari weer gebruik van maken. Apple zei niet waarom het systeem niet meer goed werkte, het vertelde ons alleen wanneer alles weer normaal zal worden, maar die van Macworld een mogelijke verklaring hebben. Ze beweren dat de manier waarop de broncode van het systeem werd bedacht een probleem veroorzaakt bij het functioneren op de eerste dag van een kalenderjaar, wat allemaal te maken heeft met de manier waarop de datum werd ingesteld met behulp van het ISO-systeem.

Voor programmeurs die veel werk hebben verricht met datum- en tijdafhandeling (zoals ik; ik schrijf vluchtsystemen van luchtvaartmaatschappijen voor de kost, waarvoor veel tijdzone-wiskunde nodig is) "is het kapot gegaan tijdens zoiets als de eerste week van de jaar" suggereert onmiddellijk een tamelijk obscuur probleem dat verband houdt met de ISO-weekdatum. Dit is een enigszins vreemde definitie van het jaar die je uit veel bibliotheken voor gegevensmanipulatie krijgt door te specificeren dat je het jaar als "JJJJ" wilt hebben, in tegenstelling tot het meer gebruikelijke "jjjj".

Dus voor 2012 zal 1-6 januari worden weergegeven als onderdeel van 2012 als de ontwikkelaar 'JJJJ' opgeeft in zijn of haar datumreeks, in plaats van dat het onderdeel is van 2013. Dit betekent dat wanneer Niet storen automatisch wordt ingeschakeld, dit ook het geval zal zijn een berekende uitschakeldatum hebben van ergens in 2012, wat nu in het verleden ligt en dus nooit zal worden uitgeschakeld. Ik heb deze fout ooit in mijn eigen code gemaakt, omdat het heel gemakkelijk is om "JJJJ" te typen in plaats van "jjjj"; het lijkt erop dat een naamloze Apple-ingenieur hetzelfde heeft gedaan in de Niet Storen-functie van iOS, maar alleen in de automatische uitschakeltijd, niet in het inschakeltijdsdeel. In mijn geval werd het probleem ontdekt tijdens geautomatiseerd testen en is het nooit live gegaan. De Apple-ingenieur heeft minder geluk gehad.

  De volledige uitleg kun je vinden op Macworld, als je zeker weet dat je het begrijpt en op de een of andere manier nodig hebt.

BIJWERKEN: Macworld beweert dat hun uitleg verkeerd is, dus negeer ze.