Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 11 odgovora
  • 3.339 pregleda

Najnovija ↓

Razlika izmedju dva vremena 30.05.2013. u 16:01 · pre 163 meseca #1
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?
Re: Razlika izmedju dva vremena 30.05.2013. u 21:13 · pre 163 meseca #2
> - 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Razlika izmedju dva vremena 31.05.2013. u 12:40 · pre 163 meseca #3
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
Re: Razlika izmedju dva vremena 31.05.2013. u 14:56 · pre 163 meseca #4
> -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;

Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Razlika izmedju dva vremena 31.05.2013. u 15:48 · pre 163 meseca #5
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)


Re: Razlika izmedju dva vremena 31.05.2013. u 17:31 · pre 163 meseca #6
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Razlika izmedju dva vremena 31.05.2013. u 21:23 · pre 163 meseca #7
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.

Re: Razlika izmedju dva vremena 31.05.2013. u 22:31 · pre 163 meseca #8
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Razlika izmedju dva vremena 01.06.2013. u 10:05 · pre 163 meseca #9
Probao sam decodetime(adoquery.fields.fieldbyname('start').asdatetime) ali javlja da ima mnogo parametara.
Re: Razlika izmedju dva vremena 01.06.2013. u 13:59 · pre 163 meseca #10
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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Razlika izmedju dva vremena 26.06.2013. u 08:42 · pre 162 meseca #11
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.
Re: Razlika izmedju dva vremena 26.06.2013. u 15:00 · pre 162 meseca #12
> - 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme