PDA

View Full Version : pascal - data gg/mm/aaaa


DarkSiDE
09-01-2004, 14:55
avendo una data in questo formato gg/mm/aaaa cosa posso utilizzare per controllarne la correttezza formale?

leadergl
09-01-2004, 15:34
per "correttezza formale" intendi che devono ovviamente essere tutti numeri?

o anche verifiche sul numero dei giorni e dei mesi?

leadergl
09-01-2004, 16:01
cmq puoi usare questo....è un po rozzo ma va!

DarkSiDE
09-01-2004, 18:58
il tuo esempio mi è cmq d'aiuto ma io vorrei realizzare qualcosa che controlli se il giorno è compreso fra 1 è 30,il mese fra 1 e 12 e così via

avevo pensato ad una struttura dati del genere:

type data=record
giorno:1..31;
mese:1..12;
anno:1900..2100;
end;
var attuale:data;

poi magari controllare se giorno è compreso nell'intervallo 1..31

per quanto riguarda il sorgente che mi hai datoperchè hai definito i numeri come costanti? nn esiste qualcosa per verificare se un numero è compreso nell'intervallo specificato, es
giorno:1..31

posso controllare se attuale.giorno è compreso fra 1 e 31?

leadergl
09-01-2004, 22:07
sempre con la funzione IN

DarkSiDE
09-01-2004, 22:44
Originariamente inviato da leadergl
sempre con la funzione IN
ti posso fare una statua?

leadergl
09-01-2004, 23:09
credo sia troppo........una statua....wow......mi accontenterei di una scultura in legno....:D

no dai skerzo...cmq mi fa piacere se posso esserti d'aiuto! :O

DarkSiDE
10-01-2004, 08:53
visto che ci siamo :D

esiste qualcosa che mi consenta di lavorare più agevolmente sulla stringa? ho una stringa del tipo gg/mm/aaaa come posso recuperarmi solo un determinato numero di caratteri, tipo gg o mm?

leadergl
10-01-2004, 14:33
sinceramente non ricordo se c'è una funzione particolare....ma credo di si....

però puoi provare anche così;

VAR
gg,mm,aaaa:integer;
Begin
Write('Inserire la data (nel formato GG MM AAAA): ');
readln(gg,mm,aaaa);

{opzionale per vedere se è tutto giusto}
writeln;
writeln('Giorno: ',gg);
writeln('Mese: ',mm);
writeln('Anno: ');
readln;
end.


che cmq ti legge tutti i dati.....
solo che devi scriverli così: 16 10 1976
e non puoi scriverli così: 16/10/1976 altrimenti ti da errore!

DarkSiDE
11-01-2004, 11:10
senza aprire inutilmente altri 3d..
per ricavarmi la lunghezza di una stringa utilizzo length, ma se voglio ricavarmi la lunghezza di un vettore di interi o di stringhe esiste una funzione che mi restituisce la dimensione?

leadergl
11-01-2004, 14:31
il vettore sei tu a dichiararlo di una certa lunghezza all'inizio del programma!!


VAR
vettore:ARRAY [1..10] of integer:


se invece vuoi sapere quante delle posizioni del vettore sono occupate da dati che ti servono devi contarle....scorrendoci dentro con un ciclo FOR

DarkSiDE
11-01-2004, 20:31
Originariamente inviato da leadergl
il vettore sei tu a dichiararlo di una certa lunghezza all'inizio del programma!!


VAR
vettore:ARRAY [1..10] of integer:


se invece vuoi sapere quante delle posizioni del vettore sono occupate da dati che ti servono devi contarle....scorrendoci dentro con un ciclo FOR


mi sono espresso male effettivamente, intendevo il numero di posizioni occupate, credevo esistesse una funzione apposita

leadergl
11-01-2004, 20:44
no, una appostita non esiste....(da quello k so...ma cmq nn credo)...però puoi creartela tu una funzione apposita...eheh

DarkSiDE
12-01-2004, 10:35
grazie ancora ;)