Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: dex - 14 Agosto 2010, 00:40:27

Titolo: [risolto]calcolo per maggiorenni
Inserito da: dex - 14 Agosto 2010, 00:40:27
ciao raga

mi serve una mano con un piccolo calcolo fra date per determinare se una persona è maggiorenne oppure no.
Nel mio programma avevo calcolato i giorni fra le due date aggiunto 1 giorno ogni 4 anni e diviso per 365.
Fino ad ora ha funzionato ma oggi 13/08/10 nel registrare un cliente nato il 12/08/92 il programma si bloccava, evidentemente gli anni bisestili incidono in base al periodo.

Mi serve una formula esatta che allo scadere della mezzanotte mi dice se la persona è maggiorenne o meno.
Titolo: Re: calcolo per maggiorenni
Inserito da: Ceskho - 14 Agosto 2010, 01:05:13
ciao raga

mi serve una mano con un piccolo calcolo fra date per determinare se una persona è maggiorenne oppure no.
Nel mio programma avevo calcolato i giorni fra le due date aggiunto 1 giorno ogni 4 anni e diviso per 365.
Fino ad ora ha funzionato ma oggi 13/08/10 nel registrare un cliente nato il 12/08/92 il programma si bloccava, evidentemente gli anni bisestili incidono in base al periodo.

Mi serve una formula esatta che allo scadere della mezzanotte mi dice se la persona è maggiorenne o meno.

Scusa che bisogno c'è di vedere se l'anno è bisesestile. Prima compari gli anni. Se già da questo vedi che la differenza è minore di 18 allora esci dalla funzione ok? se invece vedi che la differenza tra gli anni è maggiore di 18 è sicuramente maggiorenne (un 19enne è sicuramente maggiorenne). Se, ultimo caso, vedi che la differenza tra i due anni è 18 allora confronti mese e giorno. Prima confronti il mese e vedi che se il mese dell'utente è maggiore di quello trascorso allora è sicuramente maggiorenne e toppi qui. In caso contrario confronti anche il giorno. Sono stato chiaro?
Titolo: Re: calcolo per maggiorenni
Inserito da: milio - 14 Agosto 2010, 04:24:41
Puoi anche fare in questo modo:

 
Codice: gambas [Seleziona]
  Data = DateAdd(DataDiNascita, gb.Year, 18)
  IF Data <= Now() THEN
    PRINT "Maggiorenne"
  ELSE
    PRINT = "Minorenne"
  ENDIF
Titolo: Re: calcolo per maggiorenni
Inserito da: dex - 15 Agosto 2010, 17:24:55
risolto con il codice di milio