Pascal - data i godzina
Większość programów, które piszesz, wymaga implementacji jakiejś formy funkcji daty zwracającej aktualną datę i godzinę. Daktyle są tak ważną częścią codziennego życia, że łatwo jest z nimi pracować bez zastanowienia. Pascal zapewnia również potężne narzędzia do arytmetyki dat, które ułatwiają manipulowanie datami. Jednak rzeczywista nazwa i działanie tych funkcji są różne dla różnych kompilatorów.
Pobieranie aktualnej daty i godziny
Funkcja TimeToString Pascala podaje aktualny czas w postaci rozdzielanej dwukropkami (:). Poniższy przykład pokazuje, jak uzyskać aktualny czas -
program TimeDemo;
uses sysutils;
begin
writeln ('Current time : ',TimeToStr(Time));
end.
Kiedy powyższy kod został skompilowany i wykonany, daje następujący wynik -
Current time : 18:33:08
Plik Date funkcja zwraca bieżącą datę w formacie TDateTimeformat. TDateTime to podwójna wartość, która wymaga pewnego dekodowania i formatowania. Poniższy program demonstruje, jak używać go w programie do wyświetlania bieżącej daty -
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.
Kiedy powyższy kod został skompilowany i wykonany, daje następujący wynik -
Date: 4.111300000000000E+004
Today is (DD/MM/YY):23/7/2012
Funkcja Now zwraca bieżącą datę i godzinę -
Program DatenTimeDemo;
uses sysutils;
begin
writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now));
end.
Kiedy powyższy kod został skompilowany i wykonany, daje następujący wynik -
Date and Time at the time of writing : 23/7/2012 18:51:
Free Pascal zapewnia prostą strukturę znaczników czasu o nazwie TTimeStamp, który ma następujący format -
type TTimeStamp = record
Time: Integer;
Date: Integer;
end;
Różne funkcje daty i czasu
Free Pascal zapewnia następujące funkcje daty i czasu -
Sr.No. | Nazwa i opis funkcji |
---|---|
1 | function DateTimeToFileDate(DateTime: TDateTime):LongInt; Konwertuje typ DateTime na datę pliku. |
2 | function DateTimeToStr( DateTime: TDateTime):; Konstruuje ciąg znaków reprezentujący DateTime |
3 | function DateTimeToStr(DateTime: TDateTime; const FormatSettings: TFormatSettings):; Konstruuje ciąg znaków reprezentujący DateTime |
4 | procedure DateTimeToString(out Result: ;const FormatStr: ;const DateTime: TDateTime); Konstruuje ciąg znaków reprezentujący DateTime |
5 | procedure DateTimeToString(out Result: ; const FormatStr: ; const DateTime: TDateTime; const FormatSettings: TFormatSettings); Konstruuje ciąg znaków reprezentujący DateTime |
6 | procedure DateTimeToSystemTime(DateTime: TDateTime; out SystemTime: TSystemTime); Konwertuje DateTime na czas systemowy |
7 | function DateTimeToTimeStamp( DateTime: TDateTime):TTimeStamp;Konwertuje DateTime na timestamp |
8 | function DateToStr(Date: TDateTime):; Konstruuje ciąg znaków reprezentujący datę |
9 | function DateToStr(Date: TDateTime; const FormatSettings: TFormatSettings):; Konstruuje ciąg znaków reprezentujący datę |
10 | function Date: TDateTime; Pobiera aktualną datę |
11 | function DayOfWeek(DateTime: TDateTime):Integer; Pobiera dzień tygodnia |
12 | procedure DecodeDate(Date: TDateTime; out Year: Word; out Month: Word; out Day: Word); Dekoduje datę i godzinę do roku, miesiąca i dnia |
13 | procedure DecodeTime(Time: TDateTime; out Hour: Word; out Minute: Word; out Second: Word; out MilliSecond: Word); Dekoduje DateTime na godziny, minuty i sekundy |
14 | function EncodeDate(Year: Word; Month: Word; Day: Word):TDateTime; Koduje rok, dzień i miesiąc do DateTime |
15 | function EncodeTime(Hour: Word; Minute: Word; Second: Word; MilliSecond: Word):TDateTime; Koduje godziny, minuty i sekundy do DateTime |
16 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime):; Zwraca ciąg znaków reprezentujący DateTime |
17 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime; const FormatSettings: TFormatSettings):; Zwraca ciąg znaków reprezentujący DateTime |
18 | function IncMonth(const DateTime: TDateTime; NumberOfMonths: Integer = 1):TDateTime; Dodaje 1 do miesiąca |
19 | function IsLeapYear(Year: Word):Boolean; Określa, czy rok jest rokiem przestępnym |
20 | function MSecsToTimeStamp(MSecs: Comp):TTimeStamp; Konwertuje liczbę milisekund na znacznik czasu |
21 | function Now: TDateTime; Pobiera aktualną datę i godzinę |
22 | function StrToDateTime(const S:):TDateTime; Konwertuje ciąg na DateTime |
23 | function StrToDateTime(const s: ShortString; const FormatSettings: TFormatSettings):TDateTime; Konwertuje ciąg na DateTime |
24 | function StrToDateTime(const s: AnsiString; const FormatSettings: TFormatSettings):TDateTime; Konwertuje ciąg na DateTime |
25 | function StrToDate(const S: ShortString):TDateTime; Konwertuje ciąg na datę |
26 | function StrToDate(const S: Ansistring):TDateTime; Konwertuje ciąg na datę |
27 | function StrToDate(const S: ShortString; separator: Char):TDateTime; Konwertuje ciąg na datę |
28 | function StrToDate(const S: AnsiString; separator: Char):TDateTime; Konwertuje ciąg na datę |
29 | function StrToDate(const S: ShortString; const useformat: ; separator: Char):TDateTime; Konwertuje ciąg na datę |
30 | function StrToDate(const S: AnsiString; const useformat: ; separator: Char):TDateTime; Konwertuje ciąg na datę |
31 | function StrToDate(const S: PChar; Len: Integer; const useformat: ; separator: Char = #0):TDateTime; Konwertuje ciąg na datę |
32 | function StrToTime(const S: Shortstring):TDateTime; Konwertuje ciąg na czas |
33 | function StrToTime(const S: Ansistring):TDateTime; Konwertuje ciąg na czas |
34 | function StrToTime(const S: ShortString; separator: Char):TDateTime; Konwertuje ciąg na czas |
35 | function StrToTime(const S: AnsiString; separator: Char):TDateTime; Konwertuje ciąg na czas |
36 | function StrToTime(const S: ; FormatSettings: TFormatSettings):TDateTime; Konwertuje ciąg na czas |
37 | function StrToTime(const S: PChar; Len: Integer; separator: Char = #0):TDateTime; Konwertuje ciąg na czas |
38 | function SystemTimeToDateTime(const SystemTime: TSystemTime):TDateTime; Konwertuje czas systemowy na datę i godzinę |
39 | function TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime; Konwertuje sygnaturę czasową na DateTime |
40 | function TimeStampToMSecs(const TimeStamp: TTimeStamp):comp; Konwertuje znacznik czasu na liczbę milisekund |
41 | function TimeToStr(Time: TDateTime):; Zwraca ciąg znaków reprezentujący czas |
42 | function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings):; Zwraca ciąg znaków reprezentujący czas |
43 | function Time: TDateTime; Uzyskaj aktualny czas |
Poniższy przykład ilustruje użycie niektórych z powyższych funkcji -
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.
Kiedy powyższy kod został skompilowany i wykonany, dał następujący wynik:
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