coh:: L>S>.......no ()

 

.3.5.9 Duur

Een duur bestaat uit een aantal seconden.

Aangezien maanden en seconden niet vergelijkbaar zijn (een maand is geen exact aantal seconden, maar is in plaats daarvan een periode waarvan de exacte lengte afhangt van de precieze dag vanaf welke het wordt gemeten), kan een duur zoals gedefinieerd in deze specificatie geen maanden (of jaren, die gelijk zijn aan twaalf maanden) omvatten. Alleen duurtijden die een bepaald aantal seconden beschrijven, kunnen worden beschreven.

Een tekenreeks is een geldige duurreeks die een duur vertegenwoordigt als deze uit een van de volgende gegevens bestaat:t

  • Een letterlijk U+0050 LATIJNS HOOFDLETTER P teken gevolgd door een of meer van de volgende subcomponenten, in de gegeven volgorde, waarbij het aantal dagen, uren, minuten en seconden overeenkomt met hetzelfde aantal seconden als in :t

    1. Een of meer ASCII-cijfers gevolgd door een U+0044 LATIJNS HOOFDLETTER D-teken, dat een aantal dagen vertegenwoordigt.

    2. Een U+0054 LATIJNSE HOOFDLETTER T, gevolgd door een of meer van de volgende subcomponenten, in de opgegeven volgorde:

      1. Een of meer ASCII-cijfers gevolgd door een U+0048 LATIJNS HOOFDLETTER H-teken, dat een aantal uren vertegenwoordigt.

      2. Een of meer ASCII-cijfers gevolgd door een U+004D LATIJNS HOOFDLETTER M-teken, dat een aantal minuten vertegenwoordigt.

      3. De volgende onderdelen:

        1. Een of meer ASCII-cijfers, die een aantal seconden vertegenwoordigen.

        2. Optioneel een U+002E FULL STOP-teken (.) gevolgd door één, twee of drie ASCII-cijfers, die een fractie van een seconde vertegenwoordigen.

        3. Een U+0053 LATIJNSE HOOFDLETTER S teken.

    Dit is, net als bij een aantal andere datum- en tijdgerelateerde microsyntaxen die in deze specificatie zijn gedefinieerd, gebaseerd op een van de formaten die zijn gedefinieerd in ISO 8601. [ISO8601]

  • Een of meer duurtijdcomponenten,elk met een andere tijdscomponentschaalvoor de duur, in willekeurige volgorde; de som van de weergegeven seconden is gelijk aan het aantal seconden in .t

    Een duurtijdcomponent is een tekenreeks die bestaat uit de volgende componenten:

    1. Nul of meer ASCII witruimte.

    2. Een of meer ASCII-cijfers , die een aantal tijdseenheden vertegenwoordigen,geschaald met de opgegeven tijdscomponentschaal voor de duur (zie hieronder) om een aantal seconden weer te geven.

    3. Als de opgegeven tijdscomponentschaal voor de duur 1 is (d.w.z. de eenheden zijn seconden), dan is optioneel een U+002E FULL STOP-teken (.) gevolgd door één, twee of drie ASCII-cijfers, die een fractie van een seconde vertegenwoordigen.

    4. Nul of meer ASCII witruimte.

    5. Een van de volgende tekens, die de tijdscomponentschaal van de duur van de tijdseenheid vertegenwoordigen die wordt gebruikt in het numerieke deel van de tijdscomponent duur:

      U+0057 LATIJNS HOOFDLETTER W teken
      U+0077 LATIJNSE KLEINE LETTER W karakter
      Weken. De schaal is 604800.
      U+0044 LATIJNSE HOOFDLETTER D teken
      U+0064 LATIJNSE KLEINE LETTER D karakter
      Dagen. De schaal is 86400.
      U+0048 LATIJNS HOOFDLETTER H teken
      U+0068 LATIJNSE KLEINE LETTER H karakter
      Uren. De schaal is 3600.
      U+004D LATIJNSE HOOFDLETTER M karakter
      U+006D LATIJNSE KLEINE LETTER M karakter
      Notulen. De schaal is 60.
      U+0053 LATIJNSE HOOFDLETTER S karakter
      U+0073 LATIJNSE KLEINE LETTER S karakter
      Seconden. De schaal is 1.
    6. Nul of meer ASCII witruimte.

    Dit is niet gebaseerd op een van de formaten in ISO 8601. Het is bedoeld als een meer menselijk leesbaar alternatief voor het ISO 8601-duurformaat.

De regels voor het parseren van een duurreeks zijn als volgt. Dit geeft een duur of niets terug. Als het algoritme op enig moment zegt dat het "faalt", betekent dit dat het op dat moment wordt afgebroken en niets retourneert.

  1. Laat de snaar worden onteerd.input

  2. Laten we een aanwijzer zijn naar , in eerste instantie wijzend naar het begin van de string.positioninput

  3. Laat , , en alles nul zijn.monthssecondscomponent count

  4. Laten we minutenzijn .M-disambiguator

    De andere waarde van deze vlag is maanden. Het wordt gebruikt om de "M" -eenheid te disambigueren in ISO8601-duur, die dezelfde eenheid maanden en minuten gebruikt. Maanden zijn niet toegestaan, maar worden ondenkeerd voor toekomstige compatibiliteit en om te voorkomen dat ISO8601-duur verkeerd wordt geïnterpreteerd die in andere contexten geldig zou zijn.

  5. SLA ASCII-witruimte over binnen gegeven .inputposition

  6. Als voorbij het einde van , dan falen.positioninput

  7. Als het teken in aangeduid met een U+0050 LATIJNS HOOFDLETTER P-teken is, ga dan naar het volgende teken, ingesteld op maanden,en sla ASCII witruimte over binnen de gegeven .inputpositionpositionM-disambiguatorinputposition

Populaire posts