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)
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