11. februar 2000 - 22:58Der er
6 kommentarer og 1 løsning
dato
Undskyld men så er jeg her igen
Hvis jeg i delphi har en Table1 i en database og jeg vil have den til at regen en dato ud
altså hvis man har en maskine der køre 170 kilo i timen Og man starter maskine mandag kl. 16.51. og den har 1000 kg. at køre til næste ordre ekspl. start kl: 16.51 1000 kg at køre ( færdig tirsdag kl 06.43 ) Hvordan får jeg så delphi til at regen datoen ud fra tiden
var StartTime, EndTime : TDateTime; H, M, S, MS : Word; Year, Month, Day : Word; Duration : Double; begin if Length( Edit1.Text )>0 then begin StartTime := StrToTime( Edit1.Text );
DecodeTime( StartTime, H, M, S, MS ); DecodeDate( Date, Year, Month, Day );
Duration := StrToFloat( Edit2.Text )/170.0; H := H + Trunc( Duration ); Duration := Duration - Trunc( Duration ); M := M + Round( 60 * Duration ); if M>60 then begin M := M - 60; H := H + 1; if H>24 then begin H := H - 24; Day := Day + 1;
if Day>MonthLen( Year, Month ) then begin Day := Day - MonthLen( Year, Month ); Month := Month + 1; if Month>12 then begin Month := Month - 12; Year := Year + 1; end; end; end end;
EndTime := EncodeTime( H, M, S, MS ); EndTime := EndTime + EncodeDate( Year, Month, Day );
Helt nøjagtigt hvad og hvordan skal du bruge forskellen mellem de to tider som:
1. antal dage, timer, minutter, sekunder eller 2. antal timer (og minutter og sekunder) eller 3. antal minutter (og sekunder) eller 4 kun antal sekunder ?
Er det for at kunne regne ud hvilken dato maskinen vil være færdig så man ved det når man starter den (og man derfor skal vide at med 1000 kilo vil være færdig f.eks. d. 14.02.2000 kl. 14.45 hvis den bliver startet d. 12.02.2000 kl. 10.15) ? eller
er det for at kunne regne ud hvormange timer den har kørt efter den er blevet færdigt (f.eks. for at kunne fakturere den forbrugte tid som timer/minutter) ?
Eller er det noget helt tredie ?
Generelt er det sådag at hvir du trækker 2 datoer fra hinanden får du et tal (af typen Double) hvor antallet for komma er antallet af dage, og decimalerne angiver timer, munitter og sekunder (og millisekunder).
Eks du kan prøve med en form med en label og en knap:
procedure TForm1.button1click(sendr : TObject); Var a,b : Tdatetime; c : Double; begin a := strtodatetime('12-02-2000 10:15'); b := strtodatetime('13-02-2000 16:45'); c := b - a; label1.caption := floattostr(c); end;
Så kan du se hvad c indeholder. Hvis du så sætter 2 edit-felter på og indtaster datoen i dem kan du se forskellen ved at bruge: a := strtodatetime(edit1.text); b := strtodatetime(edit2.text); c := b - a;
istedet.
Hvis du lige fortæller lidt mere om hvad du skal bruge resultatet til og hvordan så kan jeg bedre give dig nogle konkrete eksempler.
Ja der er rigtig at det er for at kunne regne ud hvilken dato og tiden den - Maskinen vil være færdig så man ved det når man starter på en ny opgave
( Søndag kl: 23:59 er altid starten på maskinen )
f.eks start søndag kl: 23:59 den har 1100 at køre og den køre 100 kilo i timen Og den er færdig med opgave mandag kl. 10:59 Ny opgave kan så køre kl: 10:50 og - Den har så 1000 kg at køre og køre 170 kilo i timen osv. osv.
Hej søren ja du er den bedste Og tak for programmet Det er lige presis det jeg er ude efter
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.