ivpk / dsa

Duomenų struktūros aprašo specifikacija.
GNU Affero General Public License v3.0
0 stars 1 forks source link

`time` suderinamumas su `xsd:duration` #19

Open sirex opened 2 months ago

sirex commented 2 months ago

Šiuo metu DSA specifikacijoje nurodyta:

HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]

Kas yra laiko trukmė iki 24 valandų. Tačiau panašus xsd:duration, nurodo:

The ·value space· of duration is a six-dimensional space where the coordinates designate the Gregorian year, month, day, hour, minute, and second

Reikėtu išplėsti DSA time tipo apibrėžimą, nurodant metus, mėnesį ir dieną.

Tik tada neaišku kokia turėtu būti šio tipo reikšmės reprezentaciją?

Vienas varianas:

D HH[:MM[:SS[.fff[fff]]]]

Kur D yra dienos.

Arba naudoti ISO-8601 reprezentaciją:

PnYnMnDTnHnMnS
PnW
P<date>T<time>

Dar vienas pasiūlymas, palaikyti ir milisekundes:

PnYnMnDTnHnMnSnLnCnN

L - milisekundės 10^-3 C - mikrosekundės 10^-6 N - nanosekundės 10^-9

Arba galima palaikyti abu variantus, tą nesunku patikrinti, jei reikšmė prasideda raide P, tada naudojamas ISO-8601 variantas, kitu atveju, timedelta variantas.

Ir klausimas, ar galima tam pernaudoti time tipą, ar reikia naujo duration tipo. Jei įvedamas naujas duration tipas, tada klausimas ar iš vis reikia time?

Dabartinėje DSA specifikacijoje time dar turi ir laiko juostą.

Susiję

karina-klinkeviciute commented 1 month ago

Ką šiuo metu reiškia "time" Ar laiko momentą, kuriuo kažkas įvyko/turi įvykti, ar laiko trukmę?

Jei trukmę, tai, manau, galima praplėsti time. Bet kaip supratau iš dokumentacijos, tai yra būtens paros laikas, galintis nurodyti, pavyzdžiui, pradžios laiką ar panašiai?

Trukmė gali būti ilgesnė, pavyzdžiui, jei kažkas trunka savaitę - tada turėti atskirą tipą duration ir jame galimybę nurodyti dienas, gali būti naudinga.

sirex commented 1 month ago

Paliekam time ir jį deprecatinam, ir įvedam naują tipą duration.