@@ -160,7 +160,7 @@ public function testGetWeekOfMonth()
160
160
$ jDate = new Jalalian (1401 , 3 , 7 );
161
161
$ this ->assertEquals ($ jDate ->getWeekOfMonth (), 2 );
162
162
}
163
-
163
+
164
164
public function testGetFirstDayOfWeek ()
165
165
{
166
166
$ jDate = new Jalalian (1401 , 1 , 23 );
@@ -229,4 +229,145 @@ public function testGetLastMonth()
229
229
$ jDate = new Jalalian (1401 , 6 , 8 );
230
230
$ this ->assertEquals ($ jDate ->getLastMonth ()->format ('Y-m-d ' ), '1401-05-08 ' );
231
231
}
232
+
233
+ public function testGetFirstDayOfQuarter ()
234
+ {
235
+ $ jDate = new Jalalian (1402 , 01 , 25 );
236
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-01-01 ' );
237
+
238
+ $ jDate = new Jalalian (1402 , 02 , 25 );
239
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-01-01 ' );
240
+
241
+ $ jDate = new Jalalian (1402 , 03 , 25 );
242
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-01-01 ' );
243
+
244
+ $ jDate = new Jalalian (1402 , 04 , 25 );
245
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-04-01 ' );
246
+
247
+ $ jDate = new Jalalian (1402 , 05 , 25 );
248
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-04-01 ' );
249
+
250
+ $ jDate = new Jalalian (1402 , 06 , 25 );
251
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-04-01 ' );
252
+
253
+ $ jDate = new Jalalian (1402 , 07 , 25 );
254
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-07-01 ' );
255
+
256
+ $ jDate = new Jalalian (1402 , 0 8 , 25 );
257
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-07-01 ' );
258
+
259
+ $ jDate = new Jalalian (1402 , 0 9 , 25 );
260
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-07-01 ' );
261
+
262
+ $ jDate = new Jalalian (1402 , 10 , 25 );
263
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-10-01 ' );
264
+
265
+ $ jDate = new Jalalian (1402 , 11 , 19 );
266
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-10-01 ' );
267
+
268
+ $ jDate = new Jalalian (1402 , 12 , 25 );
269
+ $ this ->assertEquals ($ jDate ->getFirstDayOfQuarter ()->format ('Y-m-d ' ), '1402-10-01 ' );
270
+
271
+ }
272
+
273
+ public function testGetEndDayOfWeek ()
274
+ {
275
+ /*
276
+ * --------------------------------
277
+ * Day 1402 (March 2024)
278
+ * --------------------------------
279
+ * Sat Sun Mon Tue Wed Thu Fri
280
+ * --------------------------------
281
+ * 1
282
+ * 2 3 4 5 6 7 8
283
+ * 9 10 11 12 13 14 15
284
+ * 16 17 18 19 20 21 22
285
+ * 23 24 25 26 27 28 29
286
+ * 30
287
+ * -------------------------------
288
+ */
289
+
290
+ $ jDate = new Jalalian (1402 , 10 , 25 );
291
+ $ this ->assertEquals ($ jDate ->getEndDayOfWeek ()->format ('Y-m-d ' ), '1402-10-23 ' );
292
+
293
+ $ jDate = new Jalalian (1402 , 10 , 29 );
294
+ $ this ->assertEquals ($ jDate ->getEndDayOfWeek ()->format ('Y-m-d ' ), '1402-10-23 ' );
295
+
296
+ $ jDate = new Jalalian (1402 , 10 , 23 );
297
+ $ this ->assertEquals ($ jDate ->getEndDayOfWeek ()->format ('Y-m-d ' ), '1402-10-23 ' );
298
+
299
+ $ jDate = new Jalalian (1402 , 12 , 29 );
300
+ $ this ->assertEquals ($ jDate ->getEndDayOfWeek ()->format ('Y-m-d ' ), '1403-01-03 ' );
301
+
302
+ }
303
+
304
+ public function testGetEndDayOfMonth ()
305
+ {
306
+ /*
307
+ * --------------------------------
308
+ * Day 1402 (March 2024)
309
+ * --------------------------------
310
+ * Sat Sun Mon Tue Wed Thu Fri
311
+ * --------------------------------
312
+ * 1
313
+ * 2 3 4 5 6 7 8
314
+ * 9 10 11 12 13 14 15
315
+ * 16 17 18 19 20 21 22
316
+ * 23 24 25 26 27 28 29
317
+ * 30
318
+ * -------------------------------
319
+ */
320
+
321
+ $ jDate = new Jalalian (1402 , 10 , 25 );
322
+ $ this ->assertEquals ($ jDate ->getEndDayOfMonth ()->format ('Y-m-d ' ), '1402-10-30 ' );
323
+
324
+ $ jDate = new Jalalian (1402 , 04 , 12 );
325
+ $ this ->assertEquals ($ jDate ->getEndDayOfMonth ()->format ('Y-m-d ' ), '1402-04-31 ' );
326
+
327
+ $ jDate = new Jalalian (1402 , 12 , 25 );
328
+ $ this ->assertEquals ($ jDate ->getEndDayOfMonth ()->format ('Y-m-d ' ), '1402-12-29 ' );
329
+ }
330
+
331
+ public function testGetEndDayOfYear ()
332
+ {
333
+ $ jDate = new Jalalian (1402 , 10 , 25 );
334
+ $ this ->assertEquals ($ jDate ->getEndDayOfYear ()->format ('Y-m-d ' ), '1402-12-29 ' );
335
+
336
+ // LeapYear
337
+ $ jDate = new Jalalian (1403 , 10 , 25 );
338
+ $ this ->assertEquals ($ jDate ->getEndDayOfYear ()->format ('Y-m-d ' ), '1403-12-30 ' );
339
+ }
340
+
341
+ public function testGetEndDayOfQuarter ()
342
+ {
343
+ $ jDate = new Jalalian (1402 , 10 , 25 );
344
+ $ this ->assertEquals ($ jDate ->getEndDayOfQuarter ()->format ('Y-m-d ' ), '1402-12-29 ' );
345
+
346
+ $ jDate = new Jalalian (1402 , 02 , 25 );
347
+ $ this ->assertEquals ($ jDate ->getEndDayOfQuarter ()->format ('Y-m-d ' ), '1402-03-31 ' );
348
+
349
+
350
+ $ jDate = new Jalalian (1402 , 06 , 01 );
351
+ $ this ->assertEquals ($ jDate ->getEndDayOfQuarter ()->format ('Y-m-d ' ), '1402-06-31 ' );
352
+
353
+
354
+ $ jDate = new Jalalian (1402 , 0 9 , 01 );
355
+ $ this ->assertEquals ($ jDate ->getEndDayOfQuarter ()->format ('Y-m-d ' ), '1402-09-31 ' );
356
+ }
357
+
358
+ public function testGetQuarter ()
359
+ {
360
+ $ jDate = new Jalalian (1402 , 10 , 25 );
361
+ $ this ->assertEquals ($ jDate ->getQuarter (), 4 );
362
+
363
+ $ jDate = new Jalalian (1402 , 01 , 01 );
364
+ $ this ->assertEquals ($ jDate ->getQuarter (), 1 );
365
+
366
+
367
+ $ jDate = new Jalalian (1402 , 05 , 24 );
368
+ $ this ->assertEquals ($ jDate ->getQuarter (), 2 );
369
+
370
+ $ jDate = new Jalalian (1402 , 07 , 23 );
371
+ $ this ->assertEquals ($ jDate ->getQuarter (), 3 );
372
+ }
232
373
}
0 commit comments