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

problem sa datumima

[es] :: Pascal / Delphi / Kylix :: problem sa datumima

[ Pregleda: 1019 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

XGhost

Član broj: 33279
Poruke: 331
*.dip0.t-ipconnect.de.



+1 Profil

icon problem sa datumima23.03.2021. u 14:08 - pre 37 meseci
Stvarno sam poceo da sumnjam u sebe, odnosno jel uopce imam pojma o programiranju
glup sam ogranicen ili sta vec ali stvarno je frustrirajuce.

prost kod ali ne radi

procedure TVitalwert.Button8Click(Sender: TObject);
var
danasnjidatum,staridatum:Tdatetime;
begin
danasnjidatum:=now;
staridatum:=Vitalwert_Querydatum.Value;
if staridatum < danasnjidatum then Button4.Enabled:=false else Button4.Enabled:=true;
if staridatum < danasnjidatum then Button5.Enabled:=false else Button5.Enabled:=true;
end;

dakle iako je u mysql bazu unesen podatak kao datum i iako ga kao takvog pozivam
ne konvertujuci u stringove ili sta ja znam zbog formata (da nebi i to bio problem)
jednostavno kod ne radi. Svrha koda bi bila da onemoguci promjenu i brisanje podataka
koji su stariji od dana unosa.
 
Odgovor na temu

trimrd
Software developer

Član broj: 346213
Poruke: 5
..213.170-dsl.net.metronet.hr.



Profil

icon Re: problem sa datumima23.03.2021. u 14:41 - pre 37 meseci
Samo savjet kako da kraće pišeš:

Button4.Enabled := (staridatum < danasnjidatum);

A ovo sa datumima je vjerovatno problem u načinu kako mysql sprema datume. Nije to samo za mysql, svugje je to problem. Pogledaj šta dobiješ u .Value
 
Odgovor na temu

XGhost

Član broj: 33279
Poruke: 331
*.dip0.t-ipconnect.de.



+1 Profil

icon Re: problem sa datumima23.03.2021. u 15:44 - pre 37 meseci
Citat:
trimrd: Samo savjet kako da kraće pišeš:

Button4.Enabled := (staridatum < danasnjidatum);

A ovo sa datumima je vjerovatno problem u načinu kako mysql sprema datume. Nije to samo za mysql, svugje je to problem. Pogledaj šta dobiješ u .Value


Zbog toga kako mysql sprema datume sam se i oslonio na Value sto bi trebalo da znaci da prikaze datum bez obzira u kojem formatu ga spremio. Isao sam logikom da
kako ga god spremio trebalo bi da ga prepozna da je stariji od danas tj trenutnog datuma.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: problem sa datumima23.03.2021. u 16:40 - pre 37 meseci
Da li property Value vraca TDateTime ili Variant?
Ubaci jedan ShowMessage(DateTimeToStr(StariDatum)) pa vidi sta kaze;
 
Odgovor na temu

XGhost

Član broj: 33279
Poruke: 331
*.dip0.t-ipconnect.de.



+1 Profil

icon Re: problem sa datumima24.03.2021. u 14:08 - pre 37 meseci
Rjesio sam ja to "Nekako". Sve ja to nekako rjesim ali je stvarno frustrirajuce to kukicanje
odnosno po meni pisanje nepravilnog koda.
Predhodno sam rjesio na brzinu, pisuci slijedecu proceduru:

procedure TKarton_pacijenta.Ogranicenje_Ispravke_Starijih_Datuma;
var
danasnjidatum,staridatum:Tdatetime;
DatumText1,DatumText2:String;
begin
danasnjidatum:=now;
FormatDateTime('MM/DD/YYYY', danasnjidatum);
staridatum:=DMObrasci.Karton_Pacijenta_Querydatum.Value;
FormatDateTime('MM/DD/YYYY', staridatum);

DatumText1:= DateToStr(danasnjidatum);
DatumText2:= DateToStr(staridatum);

if DatumText1=DatumText2 then Button4.Enabled:=true else Button4.Enabled:=false;
if DatumText1=DatumText2 then Button5.Enabled:=true else Button5.Enabled:=false;

end;

Prije toga sve provjerio kako je upisano u bazu, formatirao datume i opet nista.

Po meni je glupost, da ne nabrajam dalje nacin na koji sam to rjesio, pretvarajuci datume u string.

Medjutim, ako se nadjes u prilici da trazis posao, ili da prodas izvorni kod onda je nemoguce
objasniti hrpu nelogicnosti i gluposti na koje si prinudjen da bi rjesio neki problem.




 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: problem sa datumima24.03.2021. u 17:43 - pre 37 meseci
Cudna mi je ova situacija, to treba da bude poredenje double vrednosti, i to uvek radi. da nije neki kod menjao FPU setovanja (tipa, Set8087CW)?

Sta ti prikaze, ShowMessage(DateTimeToStr(stariDatum))?
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
*.dynamic.isp.telekom.rs.



+31 Profil

icon Re: problem sa datumima26.03.2021. u 15:05 - pre 37 meseci
Po meni je najbolje vreme i datume upisivati kao string nekog formata koji je tebi pogodan za kasniju obradu. Pa ga tako snimaš i vadiš iz baze i uvek znaš na čemu si.
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: problem sa datumima26.03.2021. u 16:55 - pre 37 meseci
Ako radis sam, mozda je tako stvarno najbolje
 
Odgovor na temu

trimrd
Software developer

Član broj: 346213
Poruke: 5
..213.170-dsl.net.metronet.hr.



Profil

icon Re: problem sa datumima29.03.2021. u 15:43 - pre 37 meseci
Nije najbolje iz razloga SQL upita. Ako se već ide tim pristupom, onda bolje ostaviti podatak u formatu baze i dodati polje (calculated) koje formatira datum na način koji želimo.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 810
31.223.145.*



+62 Profil

icon Re: problem sa datumima30.03.2021. u 08:35 - pre 37 meseci
Gledam kod iz prvog posta na temi.
Jedino sto mi pada na pamet je ovaj red

Code:

  staridatum:=Vitalwert_Querydatum.Value;


Mislim da je uvek bolje pozvati eksplicitnu konverziju

Code:

  staridatum:=Vitalwert_Querydatum.AsDateTime;


Nikad ne znamo kako ce compiler prevesti variant vrednost, zato je (valjda) bolje da mu direktno kazemo STA da radi.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: problem sa datumima

[ Pregleda: 1019 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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