recess_prettify()   F
last analyzed

Complexity

Conditions 71
Paths 13447

Size

Total Lines 124
Code Lines 101

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 71
eloc 101
nc 13447
nop 4
dl 0
loc 124
rs 0
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/*
4
recess.php 2004-06-05
5
[email protected]
6
*/
7
8
/* UK Parliament */
9
$GLOBALS['recessdates'][1] = [
10
    2000 => [
11
        12 => ['more' => 21],
12
    ],
13
    2001 => [
14
        1 => ['less' => 8],
15
        2 => ['between' => [15,26]],
16
        4 => ['between' => [10,23]],
17
        5 => ['more' => 13],
18
        6 => ['less' => 13],
19
        7 => ['more' => 20],
20
        8 => ['all' => 1],
21
        9 => ['less' => 14, 'more' => 14],
22
        10 => ['less' => 4, 'between' => [4,8, 8,15]],
23
        12 => ['more' => 19] ],
24
    2002 => [
25
        1 => ['less' => 8],
26
        2 => ['between' => [14,25]],
27
        3 => ['more' => 26],
28
        4 => ['less' => 3, 'between' => [3,10]],
29
        5 => ['more' => 24],
30
        6 => ['less' => 10],
31
        7 => ['more' => 24],
32
        8 => ['all' => 1],
33
        9 => ['less' => 19, 'more' => 24],
34
        10 => ['less' => 14],
35
        12 => ['more' => 19] ],
36
    2003 => [
37
        1 => ['less' => 7],
38
        2 => ['between' => [13,24]],
39
        4 => ['between' => [14,28]],
40
        5 => ['more' => 22],
41
        6 => ['less' => 3],
42
        7 => ['more' => 17],
43
        8 => ['all' => 1],
44
        9 => ['less' => 8, 'more' => 18],
45
        10 => ['less' => 14],
46
        12 => ['more' => 18]],
47
    2004 => [
48
        1 => ['less' => 5],
49
        2 => ['between' => [12,23]],
50
        4 => ['between' => [1,19]],
51
        5 => ['more' => 27],
52
        6 => ['less' => 7],
53
        7 => ['more' => 22],
54
        8 => ['all' => 1],
55
        9 => ['less' => 7, 'more' => 16],
56
        10 => ['less' => 11],
57
        12 => ['more' => 21] ],
58
    2005 => [
59
        1 => ['less' => 10],
60
        2 => ['between' => [10,21]],
61
        3 => ['more' => 24],
62
        4 => ['less' => 4, 'more' => 10],
63
        5 => ['less' => 11, 'more' => 26],
64
        6 => ['less' => 6],
65
        7 => ['more' => 21],
66
        8 => ['all' => 1],
67
        9 => ['all' => 1],
68
        10 => ['less' => 10],
69
        12 => ['more' => 20] ],
70
    2006 => [
71
        1 => ['less' => 9],
72
        2 => ['between' => [16,27]],
73
        3 => ['more' => 30],
74
        4 => ['less' => 18],
75
        5 => ['more' => 25],
76
        6 => ['less' => 5],
77
        7 => ['more' => 25],
78
        8 => ['all' => 1],
79
        9 => ['all' => 1],
80
        10 => ['less' => 9],
81
        12 => ['more' => 19],
82
    ],
83
    2007 => [
84
        1 => ['less' => 8],
85
        2 => ['between' => [8,19]],
86
        3 => ['more' => 29],
87
        4 => ['less' => 16],
88
        5 => ['more' => 24],
89
        6 => ['less' => 4],
90
        7 => ['more' => 26],
91
        8 => ['all' => 1],
92
        9 => ['all' => 1],
93
        10 => ['less' => 8],
94
        12 => ['more' => 18],
95
    ],
96
    2008 => [
97
        1 => ['less' => 7],
98
        2 => ['between' => [7,18]],
99
        4 => ['between' => [3,21]],
100
        5 => ['more' => 22],
101
        6 => ['less' => 2],
102
        7 => ['more' => 22],
103
        8 => ['all' => 1],
104
        9 => ['all' => 1],
105
        10 => ['less' => 6],
106
        12 => ['more' => 18],
107
    ],
108
    2009 => [
109
        1 => ['less' => 12],
110
        2 => ['between' => [12,23]],
111
        4 => ['between' => [2,20]],
112
        5 => ['more' => 21],
113
        6 => ['less' => 1],
114
        7 => ['more' => 21],
115
        8 => ['all' => 1],
116
        9 => ['all' => 1],
117
        10 => ['less' => 12],
118
        12 => ['more' => 16],
119
    ],
120
    2010 => [
121
        1 => ['less' => 5],
122
        2 => ['between' => [10,22]],
123
        3 => ['more' => 30],
124
        4 => ['less' => 6, 'more' => 8],
125
        5 => ['less' => 18, 'more' => 27],
126
        6 => ['less' => 2],
127
        7 => ['more' => 27],
128
        8 => ['all' => 1],
129
        9 => ['less' => 6, 'more' => 16],
130
        10 => ['less' => 11],
131
        12 => ['more' => 21],
132
    ],
133
    2011 => [
134
        1 => ['less' => 10],
135
        2 => ['between' => [17,28]],
136
        4 => ['between' => [5,26]],
137
        5 => ['more' => 24],
138
        6 => ['less' => 7],
139
        7 => ['more' => 19],
140
        8 => ['all' => 1],
141
        9 => ['less' => 5, 'more' => 15],
142
        10 => ['less' => 10],
143
        11 => ['between' => [15,21]],
144
        12 => ['more' => 20],
145
    ],
146
    2012 => [
147
        1 => ['less' => 10],
148
        2 => ['between' => [9,20]],
149
        3 => ['more' => 27],
150
        4 => ['less' => 16],
151
        5 => ['more' => 24],
152
        6 => ['less' => 11],
153
        7 => ['more' => 17],
154
        8 => ['all' => 1],
155
        9 => ['less' => 3,'more' => 18],
156
        10 => ['less' => 15],
157
        11 => ['between' => [13,19]],
158
        12 => ['more' => 20],
159
    ],
160
    2013 => [
161
        1 => ['less' => 7],
162
        2 => ['between' => [14,25]],
163
        3 => ['more' => 26],
164
        4 => ['less' => 15],
165
        5 => ['more' => 21],
166
        6 => ['less' => 3],
167
        7 => ['more' => 18],
168
        8 => ['all' => 1],
169
        9 => ['less' => 2,'more' => 13],
170
        10 => ['less' => 8],
171
        11 => ['between' => [12,18]],
172
        12 => ['more' => 19],
173
    ],
174
    2014 => [
175
        1 => ['less' => 6],
176
        2 => ['between' => [13,24]],
177
        4 => ['between' => [10,28]],
178
        5 => ['between' => [1,6]],
179
    ],
180
    2015 => [
181
        7 => ['more' => 21],
182
        8 => ['all' => 1],
183
        9 => ['less' => 7, 'more' => 17],
184
        10 => ['less' => 12],
185
        11 => ['between' => [10,16]],
186
        12 => ['more' => 17],
187
    ],
188
    2016 => [
189
        1 => ['less' => 5],
190
        2 => ['between' => [11,22]],
191
    ],
192
];
193
# Lords differences
194
$GLOBALS['recessdates'][101] = $GLOBALS['recessdates'][1];
195
$GLOBALS['recessdates'][101][2010][5]['more'] = 26;
196
$GLOBALS['recessdates'][101][2010][7]['more'] = 28;
197
$GLOBALS['recessdates'][101][2010][9] = ['all' => 1];
198
$GLOBALS['recessdates'][101][2010][10]['less'] = 5;
199
$GLOBALS['recessdates'][101][2010][12]['more'] = 22;
200
$GLOBALS['recessdates'][101][2011] = [
201
    1 => ['less' => 10],
202
    2 => ['between' => [16,28]],
203
    4 => ['between' => [6,26]],
204
    5 => ['more' => 25],
205
    6 => ['less' => 6],
206
    7 => ['more' => 20],
207
    8 => ['all' => 1],
208
    9 => ['less' => 5, 'more' => 15],
209
    10 => ['less' => 3],
210
    11 => ['between' => [16,21]],
211
    12 => ['more' => 21],
212
];
213
214
/* Scottish Parliament */
215
$GLOBALS['recessdates'][4] = [
216
    1999 => [
217
        7 => ['more' => 2],
218
        8 => ['less' => 31],
219
        10 => ['between' => [8,25]],
220
        12 => ['more' => 17],
221
    ],
222
    2000 => [
223
        1 => ['less' => 10],
224
        4 => ['between' => [7,25]],
225
        7 => ['more' => 7],
226
        8 => ['all' => 1],
227
        9 => ['less' => 4],
228
        10 => ['between' => [6,23]],
229
        12 => ['more' => 20],
230
    ],
231
    2001 => [
232
        1 => ['less' => 8],
233
        2 => ['between' => [16,26]],
234
        4 => ['between' => [6,23]],
235
        6 => ['more' => 29],
236
        7 => ['all' => 1],
237
        8 => ['all' => 1],
238
        9 => ['less' => 3],
239
        10 => ['between' => [5,22]],
240
        12 => ['more' => 21] ],
241
    2002 => [
242
        1 => ['less' => 7],
243
        2 => ['between' => [15,25]],
244
        3 => ['more' => 28],
245
        4 => ['less' => 15],
246
        7 => ['more' => 10],
247
        8 => ['all' => 1],
248
        9 => ['less' => 2],
249
        10 => ['between' => [11,28]],
250
        12 => ['more' => 20] ],
251
    2003 => [
252
        1 => ['less' => 6],
253
        4 => ['between' => [0,31]],
254
        5 => ['less' => 2],
255
        6 => ['more' => 27],
256
        7 => ['all' => 1],
257
        8 => ['all' => 1],
258
        10 => ['between' => [10,27]],
259
        12 => ['more' => 19]],
260
    2004 => [
261
        1 => ['less' => 5],
262
        2 => ['between' => [13,23]],
263
        4 => ['between' => [2,19]],
264
        6 => ['more' => 25],
265
        7 => ['all' => 1],
266
        8 => ['less' => 30],
267
        10 => ['between' => [10,23]],
268
        12 => ['more' => 26] ],
269
    2005 => [
270
        1 => ['less' => 8],
271
        2 => ['between' => [11,21]],
272
        3 => ['more' => 24],
273
        4 => ['less' => 11],
274
        7 => ['more' => 1],
275
        8 => ['all' => 1],
276
        9 => ['less' => 5],
277
        10 => ['between' => [7,24]],
278
        12 => ['more' => 23] ],
279
    2006 => [
280
        1 => ['less' => 9],
281
        2 => ['between' => [10,20]],
282
        4 => ['less' => 18],
283
        7 => ['more' => 0],
284
        8 => ['all' => 1],
285
        9 => ['less' => 4],
286
        10 => ['between' => [6,23]],
287
        12 => ['more' => 22],
288
    ],
289
    2007 => [
290
        1 => ['less' => 8],
291
        4 => ['more' => 2],
292
        6 => ['more' => 29],
293
        7 => ['all' => 1],
294
        8 => ['all' => 1],
295
        9 => ['less' => 3],
296
        10 => ['between' => [5,22]],
297
        12 => ['more' => 21],
298
    ],
299
    2008 => [
300
        1 => ['less' => 5],
301
        2 => ['between' => [8,18]],
302
        3 => ['more' => 28],
303
        4 => ['less' => 14],
304
        6 => ['more' => 27],
305
        7 => ['all' => 1],
306
        8 => ['all' => 1],
307
        10 => ['between' => [10,27]],
308
    ],
309
];
310
311
/* NI Assembly */
312
$GLOBALS['recessdates'][5] = [
313
    2010 => [
314
        3 => ['more' => 26],
315
        4 => ['less' => 12],
316
        7 => ['more' => 2],
317
        8 => ['all' => 1],
318
        9 => ['less' => 6],
319
        10 => ['more' => 22],
320
        12 => ['more' => 17],
321
    ],
322
    2011 => [
323
        1 => ['less' => 10],
324
        4 => ['more' => 15],
325
        5 => ['less' => 2],
326
        7 => ['more' => 1],
327
    ],
328
];
329
330
/*
331
function currently_in_recess() {
332
    // Main file which recesswatcher.py overwrites each day
333
    $h = fopen(RECESSFILE, "r");
334
    $today = date("Y-m-d");
335
    while ($line = fgets($h)) {
336
        list($name, $from, $to) = explode(",", $line);
337
        if ($from <= $today and $today <= $to) {
338
            return array($name, trim($from), trim($to));
339
        }
340
    }
341
    // Second manual override file
342
    $h = fopen(RECESSFILE.".extra", "r");
343
    while ($line = fgets($h)) {
344
        list($name, $from, $to) = explode(",", $line);
345
        if ($from <= $today and $today <= $to) {
346
            return array($name, trim($from), trim($to));
347
        }
348
    }
349
350
    return false;
351
}
352
*/
353
354
function recess_prettify($day, $month, $year, $body) {
355
    global $recessdates;
356
    $dates = $recessdates[$body];
357
    $recess = 0;
358
    $from = '';
359
    $to = '';
360
    if (isset($dates[$year][$month]['all'])) {
361
        $recess = 'Summer Recess';
362
        if (isset($dates[$year][7]['all'])) {
363
            $from = "$year-6-" . $dates[$year][6]['more'];
364
        } else {
365
            $from = "$year-7-" . $dates[$year][7]['more'];
366
        }
367
        if (!isset($dates[$year][9])) {
368
            $to = "$year-08-31";
369
        } elseif (isset($dates[$year][9]['all'])) {
370
            $to = "$year-10-" . $dates[$year][10]['less'];
371
        } else {
372
            $to = "$year-9-" . $dates[$year][9]['less'];
373
        }
374
    }
375
    if ((isset($dates[$year][$month]['less']) && $day < $dates[$year][$month]['less'])
376
    || (isset($dates[$year][$month]['more']) && $day > $dates[$year][$month]['more'])
377
    || (isset($dates[$year][$month]['between']) && $day > $dates[$year][$month]['between'][0] && $day < $dates[$year][$month]['between'][1])
378
    || (isset($dates[$year][$month]['between'][2]) && $day > $dates[$year][$month]['between'][2] && $day < $dates[$year][$month]['between'][3])) {
379
        switch ($month) {
380
            case 1: case 12: $recess = 'Christmas Recess';
381
                break;
382
            case 2: if ($body == 1 || $body == 101) {
383
                $recess = 'Half Term Week';
384
            } elseif ($body == 4) {
385
                $recess = 'February Recess';
386
            }
387
                break;
388
            case 3: if ($body == 1 || $body == 101) {
389
                $recess = 'Easter Recess';
390
            } elseif ($body == 4) {
391
                $recess = 'Spring Recess';
392
            }
393
                break;
394
            case 4: if (isset($dates[$year][$month]['more']) && $day > $dates[$year][$month]['more']) {
395
                $recess = 'Election Recess';
396
            } elseif ($body == 4 && $year == 2003) {
397
                $recess = 'Election Recess';
398
            } elseif ($body == 1 || $body == 101) {
399
                $recess = 'Easter Recess';
400
            } elseif ($body == 4) {
401
                $recess = 'Spring Recess';
402
            }
403
                break;
404
            case 5: if ($year == 2001 || (isset($dates[$year][$month]['less']) && $day < $dates[$year][$month]['less'])) {
405
                $recess = 'Election Recess';
406
            } else {
407
                $recess = 'Whit Recess';
408
            }
409
                break;
410
            case 6: if ($year == 2001) {
411
                $recess = 'Election Recess';
412
            } elseif ($body == 1 || $body == 101) {
413
                $recess = 'Whit Recess';
414
            } elseif ($body == 4) {
415
                $recess = 'Summer Recess';
416
            } else {
417
                trigger_error("Argh6");
418
            }
419
                break;
420
            case 7: case 8: $recess = 'Summer Recess';
421
                break;
422
            case 9: if (isset($dates[$year][$month]['less']) && $day < $dates[$year][$month]['less']) {
423
                $recess = 'Summer Recess';
424
            } elseif ($body == 1 || $body == 101) {
425
                $recess = 'Conference Recess';
426
            } else {
427
                trigger_error("Argh9");
428
            }
429
                break;
430
            case 10: if ($body == 1 || $body == 101) {
431
                $recess = 'Conference Recess';
432
            } elseif ($body == 4) {
433
                $recess = 'Autumn Recess';
434
            } elseif ($body == 5) {
435
                $recess = 'Halloween Recess';
436
            }
437
                break;
438
            case 11: $recess = 'Autumn Recess';
439
                break;
440
            default: $recess = 1;
441
        }
442
        if (isset($dates[$year][$month]['less']) && $day < $dates[$year][$month]['less']) {
443
            $to = "$year-$month-" . $dates[$year][$month]['less'];
444
            if ($month == 1) {
445
                $from = ($year - 1) . "-12-" . $dates[$year - 1][12]['more'];
446
            } else {
447
                for ($newmonth = $month - 1; $newmonth >= 1; $newmonth--) {
448
                    if (isset($dates[$year][$newmonth]['more'])) {
449
                        $from = "$year-" . ($newmonth) . "-" . $dates[$year][$newmonth]['more'];
450
                        break;
451
                    }
452
                }
453
            }
454
        }
455
        if (isset($dates[$year][$month]['more']) && $day > $dates[$year][$month]['more']) {
456
            $from = "$year-$month-" . $dates[$year][$month]['more'];
457
            if ($month == 12) {
458
                $to = ($year + 1) . "-01-" . $dates[$year + 1][1]['less'];
459
            } else {
460
                for ($newmonth = $month + 1; $newmonth <= 12; $newmonth++) {
461
                    if (isset($dates[$year][$newmonth]['less'])) {
462
                        $to = "$year-" . ($newmonth) . "-" . $dates[$year][$newmonth]['less'];
463
                        break;
464
                    }
465
                }
466
            }
467
        }
468
        if (isset($dates[$year][$month]['between']) && $day > $dates[$year][$month]['between'][0] && $day < $dates[$year][$month]['between'][1]) {
469
            $from = "$year-$month-" . $dates[$year][$month]['between'][0];
470
            $to = "$year-$month-" . $dates[$year][$month]['between'][1];
471
        }
472
        if (isset($dates[$year][$month]['between'][2]) && $day > $dates[$year][$month]['between'][2] && $day < $dates[$year][$month]['between'][3]) {
473
            $from = "$year-$month-" . $dates[$year][$month]['between'][2];
474
            $to = "$year-$month-" . $dates[$year][$month]['between'][3];
475
        }
476
    }
477
    return [$recess, $from, $to];
478
}
479