@@ -28,6 +28,146 @@ public function testCreateDateTime()
2828
2929 }
3030
31+ public function testAddDateTime ()
32+ {
33+
34+ $ this ->assertEquals (
35+ '2016-01-01 00:00:00 ' ,
36+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->get ()
37+ );
38+
39+ $ this ->assertEquals (
40+ '2016-01-01 01:00:00 ' ,
41+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('1 hour ' )->get ()
42+ );
43+
44+ $ this ->assertEquals (
45+ '2016-01-02 01:00:00 ' ,
46+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('25 hour ' )->get ()
47+ );
48+
49+ $ this ->assertEquals (
50+ '2016-01-01 00:01:00 ' ,
51+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('1 minute ' )->get ()
52+ );
53+
54+ $ this ->assertEquals (
55+ '2016-01-01 01:01:00 ' ,
56+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('61 minute ' )->get ()
57+ );
58+
59+ $ this ->assertEquals (
60+ '2016-01-01 00:00:01 ' ,
61+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('1 second ' )->get ()
62+ );
63+
64+ $ this ->assertEquals (
65+ '2016-01-01 00:01:01 ' ,
66+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('61 second ' )->get ()
67+ );
68+
69+ $ this ->assertEquals (
70+ '2016-01-02 00:00:00 ' ,
71+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('1 day ' )->get ()
72+ );
73+
74+ $ this ->assertEquals (
75+ '2016-01-11 00:00:00 ' ,
76+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('10 day ' )->get ()
77+ );
78+
79+ $ this ->assertEquals (
80+ '2016-02-01 00:00:00 ' ,
81+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('1 month ' )->get ()
82+ );
83+
84+ $ this ->assertEquals (
85+ '2016-11-01 00:00:00 ' ,
86+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('10 month ' )->get ()
87+ );
88+
89+ $ this ->assertEquals (
90+ '2017-01-01 00:00:00 ' ,
91+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('1 year ' )->get ()
92+ );
93+
94+ $ this ->assertEquals (
95+ '2116-01-01 00:00:00 ' ,
96+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->add ('100 year ' )->get ()
97+ );
98+
99+ }
100+
101+ public function testSubDateTime ()
102+ {
103+
104+ $ this ->assertEquals (
105+ '2016-01-01 00:00:00 ' ,
106+ Datium::create (2016 , 1 , 1 , 1 , 0 , 0 )->sub ('1 hour ' )->get ()
107+ );
108+
109+ $ this ->assertEquals (
110+ '2016-01-01 00:00:00 ' ,
111+ Datium::create (2016 , 1 , 2 , 1 , 0 , 0 )->sub ('25 hour ' )->get ()
112+ );
113+
114+ $ this ->assertEquals (
115+ '2016-01-01 00:00:00 ' ,
116+ Datium::create (2016 , 1 , 1 , 0 , 1 , 0 )->sub ('1 minute ' )->get ()
117+ );
118+
119+ $ this ->assertEquals (
120+ '2016-01-01 00:00:00 ' ,
121+ Datium::create (2016 , 1 , 1 , 1 , 1 , 0 )->sub ('61 minute ' )->get ()
122+ );
123+
124+ $ this ->assertEquals (
125+ '2016-01-01 00:00:00 ' ,
126+ Datium::create (2016 , 1 , 1 , 0 , 0 , 1 )->sub ('1 second ' )->get ()
127+ );
128+
129+ $ this ->assertEquals (
130+ '2016-01-01 00:00:00 ' ,
131+ Datium::create (2016 , 1 , 1 , 0 , 1 , 1 )->sub ('61 second ' )->get ()
132+ );
133+
134+ $ this ->assertEquals (
135+ '2016-01-01 00:00:00 ' ,
136+ Datium::create (2016 , 1 , 1 , 0 , 0 , 0 )->get ()
137+ );
138+
139+ $ this ->assertEquals (
140+ '2016-01-01 00:00:00 ' ,
141+ Datium::create (2016 , 1 , 2 , 0 , 0 , 0 )->sub ('1 day ' )->get ()
142+ );
143+
144+ $ this ->assertEquals (
145+ '2016-01-01 00:00:00 ' ,
146+ Datium::create (2016 , 1 , 11 , 0 , 0 , 0 )->sub ('10 day ' )->get ()
147+ );
148+
149+ $ this ->assertEquals (
150+ '2016-01-01 00:00:00 ' ,
151+ Datium::create (2016 , 2 , 1 , 0 , 0 , 0 )->sub ('1 month ' )->get ()
152+ );
153+
154+ $ this ->assertEquals (
155+ '2016-01-01 00:00:00 ' ,
156+ Datium::create (2016 , 11 , 1 , 0 , 0 , 0 )->sub ('10 month ' )->get ()
157+ );
158+
159+ $ this ->assertEquals (
160+ '2016-01-01 00:00:00 ' ,
161+ Datium::create (2017 , 1 , 1 , 0 , 0 , 0 )->sub ('1 year ' )->get ()
162+ );
163+
164+ $ this ->assertEquals (
165+ '2016-01-01 00:00:00 ' ,
166+ Datium::create (2116 , 1 , 1 , 0 , 0 , 0 )->sub ('100 year ' )->get ()
167+ );
168+
169+ }
170+
31171 public function testDateDifference ()
32172 {
33173
0 commit comments