Az idő levonása

Hogyan vonhatom le az időt a Delphi-ban? Ez azt jelenti, hogy a művelet 12:10:00 mínusz 12:00:00, a válasz = 10 perc (vagy 600 másodperc).

minden egyszerűen megtörténik. Fordítsa le az időt másodpercben, vegye le, majd fordítsa meg)







Van-e szabványos funkció erre a műveletre?

Nem találtam semmit a linken. Kizárólag kiderült, hogy létezik ilyen szabványos modul DateUtils.pas, de nem találtam meg a szükséges f-ju-t.


> Dr. zseni # xA0; (04.10.08 11:18) [4]


> de nem találtam meg a szükséges f-ju-t.

Másodpercek és más hasonló funkciók csak meglátják a különbséget másodpercekben, percekben, órákban stb.

// az igazság pillanata
Felirat: = FloatToStr ((T1-T2) * SecsPerDay);

Van ez a kivonás, a Delphi-ben történik az operátor segítségével "-"

[8] + de az idő Delphi-ban csak egy szám. igazi.
Pontosabban, a szám egész része a dátum, és a részarány az idő.

függvény MS_ComFnPrintTimeInterval (ds, de: TDateTime): string;
// ds - kezdő dátum / idő
// de-end-dátum-végidő
var
# xA0; tms, tme: TTimeStamp;
# xA0; ts, te: LongInt;

# xA0; függvény ExtNCharToN (szám, NDig: egész): string;
# xA0; kezdődik
# xA0; eredmény: = IntToStr (szám);
# xA0; míg a Hossz (eredmény) # xA0; vége;

kezdődik
# xA0; tms: = DateTimeToTimeStamp (ds);






# xA0; tme: = DateTimeToTimeStamp (de);
# xA0; ts: = tms.Date * 24 * 3600 + tms.Time div 1000;
# xA0; te: = tme.Date * 24 * 3600 + tme.Time div 1000;
# xA0; eredmény: = ""; ha ts> te akkor eredmény: = "-";
# xA0; ts: = Abs (te-ts);
# xA0; eredmény: = eredmény + ExtNCharToN (ts div 3600,1) + ":" +
# xA0; # xA0; # xA0; # xA0; # xA0; # xA0; ExtNCharToN ((ts div 60) mod 60.2) + ":" +
# xA0; # xA0; # xA0; # xA0; # xA0; # xA0; ExtNCharToN (ts mod 60.2);
végén;

Nos, írta. És ez, ijesztő.
;)


> Nos, ha csak egy mínusz, hogy megoldja a "probléma" :)

Abs :)

> Nem :) Van egy mínusz a hátán :)

Bár ez az én helyzetem a [11] miatt kezdődött,

> eredmény: = ""; ha ts> te akkor eredmény: = "-";

o)

igen, ítélve

> Dr. Genius (10/04/08 11:05)

és

> Sergey Kokulin (04.10.08 21:05) [10]

telepatikus virgo_style ", ami a lehető legmagasabb képességekkel dolgozott, azt mutatta, hogy a kettős arcú Janus számára teljesen tisztázatlan, hogy mit kell.

Igen. ítélve [7] - gyanítom, hogy az egész chip 10 * 60-ban volt :)

Um. Itt vagyok a tükörben, káromkodva, hogy elfelejtettem a SecondsBetween-et, de olyan, mintha megfordult volna.

Amikor megpróbálom használni az f-i-t, amelyet az MsGuns kedvesen nyújt (hála neki), valami ilyesmi származik: "239542: 48: 12".

Ezt a f-vi-t hívom így:

Form1.Caption: = MS_ComFnPrintTimeInterval (most, StrToTime (TimeEdit1.Text));

Talán ez a második paraméterre vonatkozik - a TDateTime típusnak kell lennie, és megadom a TTime értéket.

Form1.Caption: = TimeToStr (dt1 - dt2);
Ahol dt1> dt2

Sajnálom, persze, de vajon van-e görcsös kezem, vagy a fenti lehetőségek közül egyik sem működik ...

1. Kezek görbék
2. Hogyan működik?

Varian [11] dolgozik nekem egy halom alkalmazásban. Miért nem működik az Ön számára, ez nem kellemes. Ez valami benne van, bármi más, mint a TDateTime

Te Th, a hercegnők intervallumot kapnak dátum formájában.

Igen, minden rendben van, amíg úgy dönt, hogy az egész részt a dátum sztring ábrázolására nem alakítja át, különösen 24 óránál rövidebb időközönként.

Memória: 0,77 MB
Hossz: 0,028 másodperc




Kapcsolódó cikkek