Avatar billede perolsen Novice
11. februar 2000 - 22:58 Der 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

hjælp

Per Olsen
Avatar billede flemmingk Nybegynder
12. februar 2000 - 10:21 #1
kan du bruge noget i stil med ...


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

    Edit3.Text := FormatDateTime( 'hh:mm', EndTime );
  end;
Avatar billede perolsen Novice
12. februar 2000 - 11:07 #2
hej flemmingk

jeg har glemt at sige at der er i en
DBGrid et det skal regen ud
kan man ikke gøre det som man regen
et Beløb ud ex

table1BELOB1.value := ((table1Atimer1.value * table1PRIS1.value));

men hvor den regen datoen ud fra tiden
i sted for



Avatar billede sjensen Nybegynder
12. februar 2000 - 19:58 #3
hej perolsen,

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.

sjensen
Avatar billede perolsen Novice
13. februar 2000 - 11:43 #4
Jeg har da glemt at sige
at den også skal kunne skrive den dag den  vil være færdig på
f.eks man.tirs.ons.tor.fre

hilsen per


Avatar billede perolsen Novice
13. februar 2000 - 11:44 #5
Hej sjensen
Ja jeg har jo kun problemer

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.

Men venlig hilsen
per olsen
Avatar billede perolsen Novice
13. februar 2000 - 11:45 #6
Er det kun mig der har problemer
med at log på eksperten
Avatar billede perolsen Novice
13. februar 2000 - 12:14 #7
Hej søren ja du er den bedste
Og tak for programmet
Det er lige presis det jeg er ude efter
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester