Autor Téma: Prosim o radu jak zjistit kolik dní ma mesic ?  (Přečteno 3710 krát)

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Prosim o radu jak zjistit kolik dní ma mesic ?
« kdy: 07-03-2013, 13:11:47 »
Prosim o radu jak zjistit kolik dní ma mesic ?

Pouzivam to takto pak to nacita z SQL....ale pak to haze chybu kdyz neni...
Kód: Delphi [Vybrat]
  1.    begin nacistdledatumu('1'+label38.Caption); end;
  2.    begin nacistdledatumu('2'+label38.Caption); end;
  3.    begin nacistdledatumu('3'+label38.Caption); end;
  4.    begin nacistdledatumu('4'+label38.Caption); end;
  5.    begin nacistdledatumu('5'+label38.Caption); end;
  6.    begin nacistdledatumu('6'+label38.Caption); end;
  7.    begin nacistdledatumu('7'+label38.Caption); end;
  8.    begin nacistdledatumu('8'+label38.Caption); end;
  9.    begin nacistdledatumu('9'+label38.Caption); end;
  10.    begin nacistdledatumu('10'+label38.Caption); end;
  11.    begin nacistdledatumu('11'+label38.Caption); end;
  12.    begin nacistdledatumu('12'+label38.Caption); end;
  13.    begin nacistdledatumu('13'+label38.Caption); end;
  14.    begin nacistdledatumu('14'+label38.Caption); end;
  15.    begin nacistdledatumu('15'+label38.Caption); end;
  16.    begin nacistdledatumu('16'+label38.Caption); end;
  17.    begin nacistdledatumu('17'+label38.Caption); end;
  18.    begin nacistdledatumu('18'+label38.Caption); end;
  19.    begin nacistdledatumu('19'+label38.Caption); end;
  20.    begin nacistdledatumu('20'+label38.Caption); end;
  21.    begin nacistdledatumu('21'+label38.Caption); end;
  22.    begin nacistdledatumu('22'+label38.Caption); end;
  23.    begin nacistdledatumu('23'+label38.Caption); end;
  24.    begin nacistdledatumu('24'+label38.Caption); end;
  25.    begin nacistdledatumu('25'+label38.Caption); end;
  26.    begin nacistdledatumu('26'+label38.Caption); end;
  27.    begin nacistdledatumu('27'+label38.Caption); end;
  28.    begin nacistdledatumu('28'+label38.Caption); end;
  29.    begin nacistdledatumu('29'+label38.Caption); end;
  30.    begin nacistdledatumu('30'+label38.Caption); end;
  31.    begin nacistdledatumu('31'+label38.Caption); end;

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 815
  • Karma: 59
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #1 kdy: 07-03-2013, 13:13:11 »
http://www.delphibasics.co.uk/RTL.asp?Name=DaysInAMonth ale google to umí i rychleji než já...
Embarcadero Technology Partner

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 576
  • Karma: 25
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #2 kdy: 07-03-2013, 13:33:39 »
ten kód je nějaký vtip? projít to cyklem ti přišlo moc jednoduchý?  :)

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #3 kdy: 07-03-2013, 13:47:12 »
Premyslim jak to udelat


uzivatele vybere

mesic a rok

a potrebuji zadat dotaz na sql

napr.

3.2013



1.3.2013
2.3.2013
atd...

ale nevim jak jednoduse napsat kod a zjistit pocet dni abych se nedotazoval na den ktery nexistuje a den ktery jeste nebyl... ....




Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 576
  • Karma: 25
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #4 kdy: 07-03-2013, 13:55:48 »
spočítáš si první a poslední den v měsíci a do podmínky dáš třeba "where date between @prvni_den and @posledni_den". Nebo můžeš k prvnímu dni přičíst měsíc a odečíst den, tím dostaneš poslední den v měsíci. Ještě možná budeš muset pořešit problém s hodinami.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #5 kdy: 07-03-2013, 14:00:12 »
Ja ukladam do databaze datum jako text  kvuli kompatibilite Windows 8 a Windows XP,atd...


muj datum je pak xx.xx.xxxx (1.3.2013)

v sql nacitam kazdy den pak zvlast napriklad
1.3.2013
2.3.2013
3.3.2013
atd

ale je to pak strasne pomale...

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 815
  • Karma: 59
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #6 kdy: 07-03-2013, 14:05:53 »
Excellent
Rated 1 time
Mi.Chal. ti to vysvětlil. ještě že nemusím používat tvoje programy  :o
Embarcadero Technology Partner

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #7 kdy: 07-03-2013, 14:08:52 »
Kazdy se uci ne?.... ... 8)

Chystam se to predelat na datum ...ale az bude vic casu na testovani....

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 576
  • Karma: 25
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #8 kdy: 07-03-2013, 14:15:03 »
Ja ukladam do databaze datum jako text  kvuli kompatibilite Windows 8 a Windows XP,atd...

ale je to pak strasne pomale...

to není kompatibilita, ale blbost :-). Použij databázový typ date(time), ten je na to dělaný. Navíc se stringem budeš mít problém s různými formáty data, takže si nic nevyřešil, ale přidal potenciální problémy.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #9 kdy: 07-03-2013, 14:18:13 »
Zkusim to předělat ale ted nemohu rozdělat program mam na tom dost věcí co deně běží takže nejdřív musim otestovat...to až bude čas

Offline Ondřej Pokorný

  • Guru
  • *****
  • Příspěvků: 815
  • Karma: 59
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #10 kdy: 07-03-2013, 14:18:21 »
Excellent
Rated 1 time
sorry, máš pravdu, ale ukládat datum, čísla a cokoliv jiného, co není string, jako string, to ti určitě žádná učebnice popř. nápověda neradí.

stejně tak nerozumím tomu výroku o kompatibilitě. viz rozdílné formátování datumu na systémech s různým jazykovým nastavením. vlastně si docílil pravého opaku - tu kompatibilitu si ztratil.
Embarcadero Technology Partner

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #11 kdy: 07-03-2013, 14:20:29 »
ja vim ze je to chyba.... ale mate nekdo reseni na tu moji otazku?

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 576
  • Karma: 25
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #12 kdy: 07-03-2013, 14:26:37 »
ja vim ze je to chyba.... ale mate nekdo reseni na tu moji otazku?

v tom tvém prasoformátu (jestli jsem ho pochopil správně) můžeš udělat where datum like '%.10.2013', kde 10 je měsíc a 2013 je rok. Prostě odignoruješ ten den. Ale stejně bys to měl předělat, tohle je špatný přístup.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #13 kdy: 07-03-2013, 15:02:38 »
label38.caption:='%.3.2013';

login2.zquery1.SQL.Add ('select id,CisloFA,Datum,Castka,Dodavatel,Pridal from '+recepce.label37.Caption+' where Datum like '+label38.Caption+'');


ale nefunguje to...

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 576
  • Karma: 25
Re:Prosim o radu jak zjistit kolik dní ma mesic ?
« Odpověď #14 kdy: 07-03-2013, 15:12:18 »
label38.caption:='%.3.2013';

login2.zquery1.SQL.Add ('select id,CisloFA,Datum,Castka,Dodavatel,Pridal from '+recepce.label37.Caption+' where Datum like '+label38.Caption+'');


ale nefunguje to...

se nedivím, musíš to dát do apostrofů ještě (v tom stringu je navíc zdvojit), něco jako

SQL.Add ('select id,CisloFA,Datum,Castka,Dodavatel,Pridal from '+recepce.label37.Caption+' where Datum like '''+label38.Caption+'''');

Jinak je to samozřejmě blbě, názvy db objektů bys asi neměl brát z UI a místo lepení stringů bys měl používat query s parametry