Pascal - Data e ora
La maggior parte dei software che scrivi richiedono l'implementazione di una qualche forma di funzioni di data che restituiscano la data e l'ora correnti. Le date fanno così tanto parte della vita quotidiana che diventa facile lavorarci senza pensarci. Pascal fornisce anche potenti strumenti per l'aritmetica delle date che facilitano la manipolazione delle date. Tuttavia, il nome e il funzionamento effettivi di queste funzioni sono diversi per i diversi compilatori.
Ottenere la data e l'ora correnti
La funzione TimeToString di Pascal ti dà l'ora corrente in una forma delimitata da due punti (:). L'esempio seguente mostra come ottenere l'ora corrente:
program TimeDemo;
uses sysutils;
begin
writeln ('Current time : ',TimeToStr(Time));
end.
Quando il codice precedente è stato compilato ed eseguito, produce il seguente risultato:
Current time : 18:33:08
Il Date la funzione restituisce la data corrente in TDateTimeformato. Il TDateTime è un valore doppio, che necessita di decodifica e formattazione. Il seguente programma mostra come usarlo nel tuo programma per visualizzare la data corrente:
Program DateDemo;
uses sysutils;
var
YY,MM,DD : Word;
begin
writeln ('Date : ',Date);
DeCodeDate (Date,YY,MM,DD);
writeln (format ('Today is (DD/MM/YY): %d/%d/%d ',[dd,mm,yy]));
end.
Quando il codice precedente è stato compilato ed eseguito, produce il seguente risultato:
Date: 4.111300000000000E+004
Today is (DD/MM/YY):23/7/2012
La funzione Now restituisce la data e l'ora correnti -
Program DatenTimeDemo;
uses sysutils;
begin
writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now));
end.
Quando il codice precedente è stato compilato ed eseguito, produce il seguente risultato:
Date and Time at the time of writing : 23/7/2012 18:51:
Free Pascal fornisce una semplice struttura di timestamp denominata TTimeStamp, che ha il seguente formato:
type TTimeStamp = record
Time: Integer;
Date: Integer;
end;
Varie funzioni di data e ora
Free Pascal fornisce le seguenti funzioni di data e ora:
Sr.No. | Nome e descrizione della funzione |
---|---|
1 | function DateTimeToFileDate(DateTime: TDateTime):LongInt; Converte il tipo DateTime in data file. |
2 | function DateTimeToStr( DateTime: TDateTime):; Costruisce la rappresentazione di stringa di DateTime |
3 | function DateTimeToStr(DateTime: TDateTime; const FormatSettings: TFormatSettings):; Costruisce la rappresentazione di stringa di DateTime |
4 | procedure DateTimeToString(out Result: ;const FormatStr: ;const DateTime: TDateTime); Costruisce la rappresentazione di stringa di DateTime |
5 | procedure DateTimeToString(out Result: ; const FormatStr: ; const DateTime: TDateTime; const FormatSettings: TFormatSettings); Costruisce la rappresentazione di stringa di DateTime |
6 | procedure DateTimeToSystemTime(DateTime: TDateTime; out SystemTime: TSystemTime); Converte DateTime nell'ora di sistema |
7 | function DateTimeToTimeStamp( DateTime: TDateTime):TTimeStamp;Converte DateTime in timestamp |
8 | function DateToStr(Date: TDateTime):; Costruisce la rappresentazione di stringa della data |
9 | function DateToStr(Date: TDateTime; const FormatSettings: TFormatSettings):; Costruisce la rappresentazione di stringa della data |
10 | function Date: TDateTime; Ottiene la data corrente |
11 | function DayOfWeek(DateTime: TDateTime):Integer; Ottiene il giorno della settimana |
12 | procedure DecodeDate(Date: TDateTime; out Year: Word; out Month: Word; out Day: Word); Decodifica DateTime in mese e giorno dell'anno |
13 | procedure DecodeTime(Time: TDateTime; out Hour: Word; out Minute: Word; out Second: Word; out MilliSecond: Word); Decodifica DateTime in ore, minuti e secondi |
14 | function EncodeDate(Year: Word; Month: Word; Day: Word):TDateTime; Codifica anno, giorno e mese in DateTime |
15 | function EncodeTime(Hour: Word; Minute: Word; Second: Word; MilliSecond: Word):TDateTime; Codifica ore, minuti e secondi in DateTime |
16 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime):; Restituisce la rappresentazione in formato stringa di DateTime |
17 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime; const FormatSettings: TFormatSettings):; Restituisce la rappresentazione in formato stringa di DateTime |
18 | function IncMonth(const DateTime: TDateTime; NumberOfMonths: Integer = 1):TDateTime; Aggiunge 1 al mese |
19 | function IsLeapYear(Year: Word):Boolean; Determina se l'anno è bisestile |
20 | function MSecsToTimeStamp(MSecs: Comp):TTimeStamp; Converte il numero di millisecondi in timestamp |
21 | function Now: TDateTime; Ottiene la data e l'ora correnti |
22 | function StrToDateTime(const S:):TDateTime; Converte la stringa in DateTime |
23 | function StrToDateTime(const s: ShortString; const FormatSettings: TFormatSettings):TDateTime; Converte la stringa in DateTime |
24 | function StrToDateTime(const s: AnsiString; const FormatSettings: TFormatSettings):TDateTime; Converte la stringa in DateTime |
25 | function StrToDate(const S: ShortString):TDateTime; Converte la stringa in data |
26 | function StrToDate(const S: Ansistring):TDateTime; Converte la stringa in data |
27 | function StrToDate(const S: ShortString; separator: Char):TDateTime; Converte la stringa in data |
28 | function StrToDate(const S: AnsiString; separator: Char):TDateTime; Converte la stringa in data |
29 | function StrToDate(const S: ShortString; const useformat: ; separator: Char):TDateTime; Converte la stringa in data |
30 | function StrToDate(const S: AnsiString; const useformat: ; separator: Char):TDateTime; Converte la stringa in data |
31 | function StrToDate(const S: PChar; Len: Integer; const useformat: ; separator: Char = #0):TDateTime; Converte la stringa in data |
32 | function StrToTime(const S: Shortstring):TDateTime; Converte la stringa in tempo |
33 | function StrToTime(const S: Ansistring):TDateTime; Converte la stringa in tempo |
34 | function StrToTime(const S: ShortString; separator: Char):TDateTime; Converte la stringa in tempo |
35 | function StrToTime(const S: AnsiString; separator: Char):TDateTime; Converte la stringa in tempo |
36 | function StrToTime(const S: ; FormatSettings: TFormatSettings):TDateTime; Converte la stringa in tempo |
37 | function StrToTime(const S: PChar; Len: Integer; separator: Char = #0):TDateTime; Converte la stringa in tempo |
38 | function SystemTimeToDateTime(const SystemTime: TSystemTime):TDateTime; Converte l'ora di sistema in datetime |
39 | function TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime; Converte il timestamp in DateTime |
40 | function TimeStampToMSecs(const TimeStamp: TTimeStamp):comp; Converte Timestamp in numero di millisecondi |
41 | function TimeToStr(Time: TDateTime):; Restituisce la rappresentazione in formato stringa di Time |
42 | function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings):; Restituisce la rappresentazione in formato stringa di Time |
43 | function Time: TDateTime; Ottieni l'ora corrente |
Il seguente esempio illustra l'uso di alcune delle funzioni di cui sopra:
Program DatenTimeDemo;
uses sysutils;
var
year, month, day, hr, min, sec, ms: Word;
begin
writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now));
writeln('Today is ',LongDayNames[DayOfWeek(Date)]);
writeln;
writeln('Details of Date: ');
DecodeDate(Date,year,month,day);
writeln (Format ('Day: %d',[day]));
writeln (Format ('Month: %d',[month]));
writeln (Format ('Year: %d',[year]));
writeln;
writeln('Details of Time: ');
DecodeTime(Time,hr, min, sec, ms);
writeln (format('Hour: %d:',[hr]));
writeln (format('Minutes: %d:',[min]));
writeln (format('Seconds: %d:',[sec]));
writeln (format('Milliseconds: %d:',[hr]));
end.
Quando il codice precedente è stato compilato ed eseguito, ha prodotto il seguente risultato:
Date and Time at the time of writing : 7/24/2012 8:26:
Today is Tuesday
Details of Date:
Day:24
Month:7
Year: 2012
Details of Time:
Hour: 8
Minutes: 26
Seconds: 21
Milliseconds: 8