Delphi-ohjelmointi: Päivämäärä- ja aikaohjelmat

Vertaa kahta TDateTime-arvoa (palauttaa "vähemmän", "yhtä" tai "suurempi"). Ohittaa aika-osan, jos molemmat arvot "putoavat" samana päivänä.

VertaaDateTime-toiminto

Vertaa kahta TDateTime-arvoa (palauttaa "vähemmän", "yhtä" tai "suurempi").

ilmoitus:
tyyppi TValueRelationship = -1..1
toimia CompareDateTime (const ADate, BDate: TDateTime): TValueRelationship

Kuvaus:
Vertaa kahta TDateTime-arvoa (palauttaa "vähemmän", "yhtä" tai "suurempi").

TValueRelationship edustaa kahden arvon välistä suhdetta. Jokaisella kolmella TValueRelationship -arvolla on symbolinen vakio "halunnut":
-1 [LessThanValue] Ensimmäinen arvo on pienempi kuin toinen arvo.
0 [EqualsValue] Kaksi arvoa ovat samat.
1 [GreaterThanValue] Ensimmäinen arvo on suurempi kuin toinen arvo.
Vertaa päivämäärän tuloksia:

LessThanValue, jos ADate on aikaisempi kuin BDate.
EqualsValue, jos sekä ADate: n että BDate: n päivämäärä- ja aika-osat ovat samat
GreaterThanValue, jos ADate on myöhempi kuin BDate.

Esimerkki:

var ThisMoment, FutureMoment: TDateTime; TämäMomenti: = Nyt; FutureMoment: = IncDay (ThisMoment, 6); // lisää 6 päivää. // CompareDateTime (ThisMoment, FutureMoment) palauttaa LessThanValue (-1) // CompareDateTime (FutureMoment, ThisMoment) palauttaa GreaterThanValue (1)
instagram viewer

VertaaTime-toiminto

Vertaa kahta TDateTime-arvoa (palauttaa "vähemmän", "yhtä" tai "suurempi"). Ohittaa päivämääräosan, jos molemmat arvot esiintyvät samanaikaisesti.

ilmoitus:
tyyppi TValueRelationship = -1..1
toimia CompareDate (const ADate, BDate: TDateTime): TValueRelationship

Kuvaus:
Vertaa kahta TDateTime-arvoa (palauttaa "vähemmän", "yhtä" tai "suurempi"). Ohittaa aika-osan, jos molemmat arvot esiintyvät samanaikaisesti.

TValueRelationship edustaa kahden arvon välistä suhdetta. Jokaisella kolmella TValueRelationship -arvolla on symbolinen vakio "halunnut":
-1 [LessThanValue] Ensimmäinen arvo on pienempi kuin toinen arvo.
0 [EqualsValue] Kaksi arvoa ovat samat.
1 [GreaterThanValue] Ensimmäinen arvo on suurempi kuin toinen arvo.
Vertaa päivämäärän tuloksia:

LessThanValue, jos ADate tapahtuu aikaisemmin BDate: n määrittämänä päivänä.
EqualsValue, jos sekä ADate: n että BDate: n aikaosuudet ovat samat, huomioimatta päivämääräosa.
GreaterThanValue, jos ADate tapahtuu myöhemmin BDate: n määrittämänä päivänä.

Esimerkki:

var ThisMoment, AnotherMoment: TDateTime; TämäMomenti: = Nyt; AnotherMoment: = IncHour (ThisMoment, 6); // lisää 6 tuntia. // CompareDate (ThisMoment, AnotherMoment) palauttaa LessThanValue (-1) // CompareDate (AnotherMoment, ThisMoment) palauttaa GreaterThanValue (1

Päiväystoiminto

Palauttaa nykyisen järjestelmäpäivämäärän.

ilmoitus:
tyyppi TDateTime = tyyppi Kaksinkertainen;

toimia päivämäärä: TDateTime;

Kuvaus:
Palauttaa nykyisen järjestelmäpäivämäärän.

Kiinteä osa TDateTime-arvoa on päivien lukumäärä, joka on kulunut 30.12.1998 jälkeen. Jaksoittainen osa TDateTime-arvosta on murto-osa 24 tunnin päivästä, joka on kulunut.

Jos haluat löytää murto-osan päivien lukumäärästä kahden päivämäärän välillä, vähennä nämä kaksi arvoa. Samoin lisätäksesi päivämäärä- ja aika-arvoa tietyllä murto-päivämäärällä, lisää vain murtoluku päivämäärä- ja aika-arvoon.

Esimerkki: ShowMessage ('Tänään on' + DateToStr (Date));

DateTimeToStr-toiminto

Muuntaa TDateTime-arvon merkkijonoksi (päivämäärä ja aika).

ilmoitus:
tyyppi
TDateTime = tyyppi Kaksinkertainen;

toimia DayOfWeek (Päivämäärä: TDateTime): kokonaisluku;

Kuvaus:
Palauttaa tietyn päivämäärän viikonpäivän.

DayOfWeek palauttaa kokonaisluvun välillä 1-7, jolloin sunnuntai on viikon ensimmäinen päivä ja lauantai on seitsemäs.
DayOfTheWeek ei ole ISO 8601 -standardin mukainen.

Esimerkki:

const Days: taulukon [1..7] merkkijono = ('Maanantai tiistai keskiviikko torstai perjantai lauantai') ShowMessage ('Tänään on' + päivää [DayOfWeek (Date)])); //Tänään on maanantai

DaysBetween-toiminto

Antaa kokonaisten päivien lukumäärän kahden määritetyn päivämäärän välillä.

ilmoitus:
toimia
DaysBetween (jatkuu nyt, AThen: TDateTime): Kokonaisluku;

Kuvaus:
Antaa kokonaisten päivien lukumäärän kahden määritetyn päivämäärän välillä.

Toiminto laskee vain kokonaisia ​​päiviä. Tämä tarkoittaa, että se palauttaa arvon 0 tuloksena erästä 05.01.2003 23:59:59 ja 05.01.2003 23:59:58 - missä todellinen ero on yksi * koko * päivä miinus 1 sekunti .

Esimerkki:

var dtNow, dtBirth: TDateTime; DaysFromBirth: kokonaisluku; dtNow: = Nyt; dtBirth: = EncodeDate (1973, 1, 29); DaysFromBirth: = DaysBetween (dtNow, dtBirth); ShowMessage ('Zarko Gajic "on olemassa' '+ + IntToStr (DaysFromBirth) + 'kokonaiset päivät!');

DateOf-toiminto

Palauttaa vain TDateTime-arvon Päivämäärä-osan asettamalla Aika-arvoksi 0.

ilmoitus:
toimia
DateOf (Päivämäärä: TDateTime): TDateTime

Kuvaus:
Palauttaa vain TDateTime-arvon Päivämäärä-osan asettamalla Aika-arvoksi 0.

DateOf asettaa aikavälin arvoon 0, mikä tarkoittaa keskiyötä.

Esimerkki:

var ThisMoment, ThisDay: TDateTime; TämäMomenti: = Nyt; // -> 06/27/2003 10:29:16:138. ThisDay: = DateOf (ThisMoment); // Tämä päivä: = 06/27/2003 00: 00: 00: 000

DecodeDate-toiminto

Erottaa vuoden, kuukauden ja päivän arvot TDateTime-arvosta.

ilmoitus:
menettely
DecodeDate (Päivämäärä: TDateTime; var Vuosi, kuukausi, päivä: sana) ;;

Kuvaus:
Erottaa vuoden, kuukauden ja päivän arvot TDateTime-arvosta.

Jos annettu TDateTime-arvo on pienempi tai yhtä suuri kuin nolla, vuoden, kuukauden ja päivän palautusparametrit asetetaan nollaan.

Esimerkki:

var Y, M, D: Word; DecodeDate (päivämäärä, Y, M, D); jos Y = 2000, niin. ShowMessage ('Olet "väärällä" vuosisadalla!);

EncodeDate-toiminto
Luo TDateTime-arvon vuoden, kuukauden ja päivän arvoista.

ilmoitus:
toimia
EncodeDate (vuosi, kuukausi, päivä: sana): TDateTime

Kuvaus:
Luo TDateTime-arvon vuoden, kuukauden ja päivän arvoista.

Vuoden on oltava 1 - 9999. Voimassa olevat kuukausiarvot ovat 1–12. Päivän voimassa olevat arvot ovat 1 - 28, 29, 30 tai 31, kuukausiarvosta riippuen.
Jos toiminto epäonnistuu, EncodeDate nostaa EConvertError-poikkeuksen.

Esimerkki:

var Y, M, D: Word; dt: TDateTime; y: = 2001; M: = 2; D: = 18; dt: = EncodeDate (Y, M, D); ShowMessage ('Borna tulee olemaan. yhden vuoden ikäinen '+ DateToStr (dt))

FormatDateTime-toiminto
Alustaa TDateTime-arvon merkkijonoksi.

ilmoitus:
toimia
FormatDateTime (const Fmt: merkkijono; Arvo: TDateTime): jono;

Kuvaus:
Alustaa TDateTime-arvon merkkijonoksi.

FormatDateTime käyttää Fmt-parametrin määrittämää muotoa. Katso tuetut muotoilun määrittäjät Delphin ohjetiedostoista.

Esimerkki:

var s: merkkijono; d: TDateTime;... d: = Nyt; // tänään + nykyinen aika. s: = FormatDateTime (dddd ', d); // s: = keskiviikko. s: = FormatDateTime ('"Tänään on" dddd "minuutti" nn', d) // s: = Tänään on keskiviikon minuutti 24

IncDay-toiminto

Lisää tai vähentää tietyn määrän päiviä päivämääräarvosta.

ilmoitus:
toimia
IncDay (ADate: TDateTime; Päivät: Kokonaisluku = 1): TDateTime;

Kuvaus:
Lisää tai vähentää tietyn määrän päiviä päivämääräarvosta.

Jos Päivät-parametri on negatiivinen, palautettu päivämäärä on

Esimerkki:

var Päivämäärä: TDateTime; EncodeDate (päivämäärä, 2003, 1, 29) // 29. tammikuuta 2003. IncDay (päivämäärä, -1) // 28. tammikuuta 2003

Nyt toiminto

Palauttaa nykyisen järjestelmän päivämäärän ja kellonajan.

ilmoitus:
tyyppi
TDateTime = tyyppi Kaksinkertainen;

toimia Nyt: TDateTime;

Kuvaus:
Palauttaa nykyisen järjestelmän päivämäärän ja kellonajan.

Kiinteä osa TDateTime-arvoa on päivien lukumäärä, joka on kulunut 30.12.1998 jälkeen. Jaksoittainen osa TDateTime-arvosta on murto-osa 24 tunnin päivästä, joka on kulunut.

Jos haluat löytää murto-osan päivien lukumäärästä kahden päivämäärän välillä, vähennä nämä kaksi arvoa. Samoin lisätäksesi päivämäärä- ja aika-arvoa tietyllä murto-päivämäärällä, lisää vain murtoluku päivämäärä- ja aika-arvoon.

Esimerkki: ShowMessage ('Nyt on' + DateTimeToStr (Nyt));

YearsBetween -toiminto

Antaa kokonaisten vuosien määrän kahden määritetyn päivämäärän välillä.

ilmoitus:
toimia
YearsBetween (const SomeDate, AnotherDate: TDateTime): Kokonaisluku;

Kuvaus:
Antaa kokonaisten vuosien määrän kahden määritetyn päivämäärän välillä.

YearsBetween palauttaa likiarvon, joka perustuu oletukseen, että vuodessa on 365,25 päivää.

Esimerkki:

var dtSome, dtAnother: TDateTime; DaysFromBirth: kokonaisluku; dtSome: = EncodeDate (2003, 1, 1); dtAnother: = EncodeDate (2003, 12, 31); YearsBetween (dtSome, dtAnother) == 1 // muu kuin vuosi. dtSome: = EncodeDate (2000, 1, 1); dtAnother: = EncodeDate (2000, 12, 31); YearsBetween (dtSome, dtAnother) == 0 // karkausvuosi
instagram story viewer