1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
uses
sysutils,dateutils;
var
date1,
date2: tdatetime;
jdate: double;
begin
date1:=EncodeDateTime(2010,03,22,0,0,0,0);
date2:=JulianDateToDateTime(2455277.50000);
if date1<>date2 then
begin
writeln(date1:0:12);
writeln(date2:0:12);
halt(1);
end;
if DateTimeToJulianDate(date2)<>2455277.50000 then
begin
writeln(DateTimeToJulianDate(date2):0:5);
writeln(2455277.50000:0:5);
halt(2);
end;
jdate:=DateTimeToModifiedJulianDate(date1);
if ModifiedJulianDateToDateTime(jdate)<>date1 then
begin
writeln(jdate:0:12);
writeln(date1:0:12);
halt(3);
end;
date1:=EncodeDateTime(2010,03,23,0,0,0,0);
date2:=JulianDateToDateTime(2455278.50000);
if date1<>date2 then
begin
writeln(date1:0:12);
writeln(date2:0:12);
halt(4);
end;
if DateTimeToJulianDate(date2)<>2455278.50000 then
begin
writeln(DateTimeToJulianDate(date2):0:5);
writeln(2455278.50000:0:5);
halt(5);
end;
jdate:=DateTimeToModifiedJulianDate(date1);
if ModifiedJulianDateToDateTime(jdate)<>date1 then
begin
writeln(jdate:0:12);
writeln(date1:0:12);
halt(6);
end;
date1:=EncodeDateTime(2011,03,26,19,15,30,555);
if IsInLeapYear(date1) then
begin
writeln('IsInLeapYear test fail');
halt(7);
end;
if not IsPM(date1) then
begin
writeln('IsPM test fail');
halt(8);
end;
if YearOf(date1) <> 2011 then
begin
writeln('YearOf test fail');
halt(9);
end;
if MonthOf(date1) <> 3 then
begin
writeln('MonthOf test fail');
halt(10);
end;
if DayOf(date1) <> 26 then
begin
writeln('DayOf test fail');
halt(11);
end;
if (HourOf(date1) <> 19) or (HourOfTheDay(date1) <> 19) then
begin
writeln('HourOf test fail');
halt(11);
end;
if (MinuteOf(date1) <> 15) or (MinuteOfTheHour(date1) <> 15) then
begin
writeln('MinuteOf test fail');
halt(12);
end;
if (SecondOf(date1) <> 30) or (SecondOfTheMinute(date1) <> 30) then
begin
writeln('SecondOf test fail');
halt(13);
end;
if (MilliSecondOf(date1) <> 555) or (MilliSecondOfTheSecond(date1) <> 555) then
begin
writeln('MilliSecondOf test fail');
halt(14);
end;
if StartOfTheYear(date1) <> EncodeDate(2011, 1, 1) then
begin
writeln('StartOfTheYear test fail');
halt(15);
end;
if EndOfTheYear(date1) <> EncodeDateTime(2011,12,31,23,59,59,999) then
begin
writeln('EndOfTheYear test fail');
halt(16);
end;
if scandatetime('YYYY.MM.DD HH:NN:SS:ZZZ', '2011.03.29 16:46:56:777') <>
EncodeDateTime(2011,03,29,16,46,56,777) then
begin
writeln('scandatetime test fail');
halt(17);
end;
end.
|