Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Razlika izmedju dva vremena

[es] :: Pascal / Delphi / Kylix :: Razlika izmedju dva vremena

[ Pregleda: 2308 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

erc kragujevac
Radomir Brzakovic
Focal point for SAP

Član broj: 30491
Poruke: 144
151.91.34.*



+2 Profil

icon Razlika izmedju dva vremena30.05.2013. u 15:01 - pre 132 meseci
Moze li mala pomoc:

Imam dva polja u koaj treba da se unosi vreme( posto nema neke timepicker komponente koaj bi nudila 24h vreme odradio sam sa CB i vreme je oblika hh:mm i podatke uzima sa SQL server-a( ako postavim nvarchar tip onda mi daje bas ovaku, a ako uzmem datetime moram da resim maskom na samom polju u upitu).

Poenta je da proveri vreme 1 i vreme2 ( pocetak i kraj) i ukoliko je kraj veci od pocetka da izracuna razliku u minutima.
U principu f-je compare i minutesbetween rade,ali imam 2 problema:

- ti minuti bi trebali da budu izracunati i prikazani kao integer tip
-kada racunam 06:02 do 06:10 daje mi 7 minuta,a kada odradim 06:02 do 07:10 daje mi 68 koliko i ocekujem.

gde je problem?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Razlika izmedju dva vremena30.05.2013. u 20:13 - pre 132 meseci
> - ti minuti bi trebali da budu izracunati i prikazani kao integer tip
> -kada racunam 06:02 do 06:10 daje mi 7 minuta,a kada odradim 06:02 do 07:10 daje mi 68 koliko i ocekujem.
> gde je problem?

Možda u zaokruženju, TDateTime je u osnovi double pa se možda tih 10 minuta čuva kao 9,9999.
 
Odgovor na temu

erc kragujevac
Radomir Brzakovic
Focal point for SAP

Član broj: 30491
Poruke: 144
*.static.isp.telekom.rs.



+2 Profil

icon Re: Razlika izmedju dva vremena31.05.2013. u 11:40 - pre 132 meseci
Probao sam u labelu da upisujem i floattostr i inttostr.
Krajnje cudna situacija:

-Izmedju 00:06 i 13:45 javlja 808,a izmedju 00:06 i 13:46 pokazuje 810 kako bi i trebalo.

Pozdrav
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Razlika izmedju dva vremena31.05.2013. u 13:56 - pre 132 meseci
> -Izmedju 00:06 i 13:45 javlja 808,a izmedju 00:06 i 13:46 pokazuje 810 kako bi i trebalo.

Verovatno zato što 13:45 vidi kao 13:44,999. Koju ti uopšte funkciju koristiš?

Evo kratkog primera koji radi kako treba (probano u D7).

Code:

var
  d1, d2, d3: TTime;
begin
  d1 := EncodeTime(0, 6, 0, 0);
  d2 := EncodeTime(13, 45, 0, 0);
  Caption := IntToStr(MinutesBetween(d2, d1));
end;


 
Odgovor na temu

erc kragujevac
Radomir Brzakovic
Focal point for SAP

Član broj: 30491
Poruke: 144
*.static.isp.telekom.rs.



+2 Profil

icon Re: Razlika izmedju dva vremena31.05.2013. u 14:48 - pre 132 meseci
Delphi6,a f-ja je ista.
Samos to uzmem dve promenljive i dodelim izabrane vrednosti
IZ SQL mi vraca datetime u ovom formatu 30.05.2013 12:00:00 AM iako sam hteo da bude hh:mm.
Zato sam display componente podesio na hh:mm i punim dva polja pocetak i kraj :

starttime:=ADOQuery6.Fields.Fieldbyname('start').asdatetime; na change startime punim kontrolu
endtime:=ADOQuery7.Fields.Fieldbyname('end').asdatetime; na change endtime punim kontrolu

Na enter u sledece polje odradio sam

Label5.caption:=inttostr(MinutesBetween(starttime,endtime));
Labelu samo koristim da vidim koju vrednost vraca

Ima li smisla da stavim encode (ADOQuery6.Fields.Fieldbyname('start').asdatetime)


 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Razlika izmedju dva vremena31.05.2013. u 16:31 - pre 132 meseci
> IZ SQL mi vraca datetime u ovom formatu 30.05.2013 12:00:00 AM iako sam hteo da bude hh:mm.

SQL baza verovatno čuva datum u nekom internom obliku, kako će se prikazati zavisi od tebe (podešavanja u sistemu i u tvom programu).
Pogledaj SysUtils i ShortTimeFormat/LongTimeFormat.

> starttime:=ADOQuery6.Fields.Fieldbyname('start').asdatetime; na change startime punim kontrolu
> endtime:=ADOQuery7.Fields.Fieldbyname('end').asdatetime; na change endtime punim kontrolu

> Label5.caption:=inttostr(MinutesBetween(starttime,endtime));
> Labelu samo koristim da vidim koju vrednost vraca

Ubaci negde poziv za DecodeTime ili FormatDateTime('HH:MM:SS zzz') tako da tačno vidiš i sekunde i milisekunde.

> Ima li smisla da stavim encode (ADOQuery6.Fields.Fieldbyname('start').asdatetime)

Nisam razumeo.

 
Odgovor na temu

erc kragujevac
Radomir Brzakovic
Focal point for SAP

Član broj: 30491
Poruke: 144
*.dynamic.sbb.rs.



+2 Profil

icon Re: Razlika izmedju dva vremena31.05.2013. u 20:23 - pre 132 meseci
Hvala.

Probao sam sve i svasta i negde pravi problem. U pomenutom slucaju cak i promenljiva float prikazuje 808 umesto 809.

Pogledacu podesavanaj sql servera,ali format je datetime .
Ne razumem tacno gde i kako treba da primenim DecodeTime ili FormatDateTime.
MinutesBetween racuan and float zapisom, bar tako prikazuje u kod-u.
Probao sam dekode od adoquery6...,ali javlaj problem izmedju Word i datetime.
Onda sam definisao promenljivu tipa word(nisam bas vican ovome) i probao da joj dodelim vrednost sa decode vrednostupita.asdatetime.

 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Razlika izmedju dva vremena31.05.2013. u 21:31 - pre 132 meseci
> Ne razumem tacno gde i kako treba da primenim DecodeTime ili FormatDateTime.

Na datumima koje si dobio iz baze, tako ćeš tačno videti šta je u bazi zapisano.
 
Odgovor na temu

erc kragujevac
Radomir Brzakovic
Focal point for SAP

Član broj: 30491
Poruke: 144
*.dynamic.sbb.rs.



+2 Profil

icon Re: Razlika izmedju dva vremena01.06.2013. u 09:05 - pre 132 meseci
Probao sam decodetime(adoquery.fields.fieldbyname('start').asdatetime) ali javlja da ima mnogo parametara.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Razlika izmedju dva vremena01.06.2013. u 12:59 - pre 132 meseci
DecodeTime je deklarisan u SysUtils unitu:

procedure DecodeTime(const DateTime: TDateTime; var Hour, Min, Sec, MSec: Word);

Dakle, deklariši promenljive za sate, minute, sekunde i milisekunde i prosledi tvoj datum.
 
Odgovor na temu

erc kragujevac
Radomir Brzakovic
Focal point for SAP

Član broj: 30491
Poruke: 144
*.static.isp.telekom.rs.



+2 Profil

icon Re: Razlika izmedju dva vremena26.06.2013. u 07:42 - pre 131 meseci
U principu program radi svoje,ali imamo dva zaglupa.

- Kako moze da se odradi da korisnik unese recimo 0 i da mu onda da sva vremena koja pocinju nulom, da bi se skratilo vreme unosa( ovako mora da ide niz klizac).
- U prilogu je slika drugog problema.
Trebalo bi mi nesto sto proverava razmak od 24 h jer za pocetak u 23:00,a kraj u 01:00 narednog dana daje pruku u prilogu. ne vidi da treba da predje u naredni dan i i obracuna vrema vec javlja da je kraj pre pocetka.
Prikačeni fajlovi
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Razlika izmedju dva vremena26.06.2013. u 14:00 - pre 131 meseci
> - Kako moze da se odradi da korisnik unese recimo 0 i da mu onda da sva vremena koja pocinju nulom, da bi se skratilo vreme unosa( ovako mora da ide niz klizac).

Napuniš neki combobox sa svim vrednostima od 0 do 23.

> Trebalo bi mi nesto sto proverava razmak od 24 h jer za pocetak u 23:00,a kraj u 01:00 narednog dana daje pruku u prilogu. ne vidi da treba
> da predje u naredni dan i i obracuna vrema vec javlja da je kraj pre pocetka.

Interno ta vremena tretiraj kao datum, tako ćeš imati i znati tačno kada je šta počelo i završilo se.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Razlika izmedju dva vremena

[ Pregleda: 2308 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.