Search  
Friday, February 10, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Tema pentru acasa  Urmatoarea zi d...
 Urmatoarea zi de nastere fata de data sistem
 
 6/11/2009 2:36:22 PM
User is offlinenbucur
2 posts


Urmatoarea zi de nastere fata de data sistem
 (Romania)
Am nevoie de un programel care sa-mi afiseze urmatoarea zi de nastere fata de data sistem, utilizand o tabela in care se afla datele de nastere ale angajatilor. Am incercat ceva, dar nu reusesc sa fac corectia datorata anilor bisecti.  Lucrez in Visual Fox 5. Ma poate ajuta cineva?
 6/11/2009 4:19:05 PM
User is offlineIaci
96 posts




Re: Urmatoarea zi de nastere fata de data sistem
 (N/A) Modified By Iaci  on 6/11/2009 3:20:07 PM)
Banuiesc ca te referi la urmatoarea zi de nastere ca zi a saptaminii (luni , marti, etc)

*asta o iei din tabela de care spuneai
znast=CTOD('18/06/1960')

znast_an_curent=CTOD(ALLTRIM(STR(DAY(znast)))+'/'+ALLTRIM(STR(MONTH(znast)))+'/'+ALLTRIM(STR(YEAR(DATE()))))
IF znast_an_curent<=DATE()
    ziua=CDOW(CTOD(ALLTRIM(STR(DAY(znast)))+'/'+ALLTRIM(STR(MONTH(znast)))+'/'+ALLTRIM(STR(YEAR(DATE())))))
ELSE
    ziua=CDOW(CTOD(ALLTRIM(STR(DAY(znast)))+'/'+ALLTRIM(STR(MONTH(znast)))+'/'+ALLTRIM(STR(YEAR(DATE()+1)))))
ENDIF
WAIT ziua window

 6/11/2009 4:32:51 PM
User is offlinenbucur
2 posts


Re: Urmatoarea zi de nastere fata de data sistem
 (Romania)
Nu chiar. Ma intereseaza sa stiu care este urmatorul sarbatorit, adica fata de astazi, 11.06, care este primul coleg care isi serbeaza ziua de nastere si cand anume. Multumesc pt ajutor, e un start.
 6/11/2009 6:48:24 PM
User is offlineaflorin
838 posts
1st


Re: Urmatoarea zi de nastere fata de data sistem
 (N/A)
Cea mai simpla varianta:

Un SELECT cu TOP 1 pe tabela ta, unde la conditia WHERE pui:

MONTH(data_nast) * 100 + DAY(data_nast) >= MONTH(DATE()) * 100 + DAY(DATE())

Florin Aparaschivei - Iasi
 6/11/2009 7:38:27 PM
User is offlineGrigore Dolghin
3521 posts
www.class-software.eu
1st






Re: Urmatoarea zi de nastere fata de data sistem
 (N/A)
Select Top 1 From tabela Where data_nast>date()

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 6/12/2009 5:40:04 PM
User is offlineaflorin
838 posts
1st


Re: Urmatoarea zi de nastere fata de data sistem
 (N/A)
 Grigore Dolghin wrote
Select Top 1 From tabela Where data_nast>date()


Sigur e o scapare ... pentru ca asa ii obtinem pe urmasii angajatilor nostri :)

Florin Aparaschivei - Iasi
 6/12/2009 8:55:16 PM
User is offlineGrigore Dolghin
3521 posts
www.class-software.eu
1st






Re: Urmatoarea zi de nastere fata de data sistem
 (N/A)
Order by data_nast. Daca folosesti TOP, clauza ORDER BY e obligatorie :)

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 6/14/2009 3:20:19 AM
User is offlineroxy
70 posts




Re: Urmatoarea zi de nastere fata de data sistem
 (N/A)
varianta 1

SELECT * ;
FROM (SELECT nume,right(DTOS(dnast),4) as mmll FROM fisier) as aa ;
ORDER BY mmll;
WHERE mmll>right(DTOS(DATE()),4)


Totusi ramane problema cu anul umator,
(de ex. daca acum suntem in decembrie la final, care va fi urmatoarea zi de nastere? )

Asa ca, varianta mai complicata (dar mai riguroasa) ar fi

SELECT nume,;
MONTH(dnast)*100+DAY(dnast) as mmll,;
(IIF(MONTH(dnast) FROM fisier ;
ORDER BY mmll2

De aici incolo e simplu, se alege primul, cu top 1 sau altfel.

  Visual FoxPro  Tema pentru acasa  Urmatoarea zi d...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement