Skip to content

Commit b56b4b2

Browse files
authored
Add Indonesia holidays for 2015-2026 (#2676)
2 parents 3a4fb5e + 936ceaf commit b56b4b2

1 file changed

Lines changed: 309 additions & 2 deletions

File tree

ql/time/calendars/indonesia.cpp

Lines changed: 309 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ namespace QuantLib {
5252
|| (dd == em-3)
5353
// Ascension Thursday
5454
|| (dd == em+38)
55+
// Labour Day (national holiday since 2014)
56+
|| (d == 1 && m == May && y >= 2014)
57+
// Pancasila Day (national holiday since 2017)
58+
|| (d == 1 && m == June && y >= 2017)
5559
// Independence Day
5660
|| (d == 17 && m == August)
5761
// Christmas
@@ -258,8 +262,6 @@ namespace QuantLib {
258262
|| (d == 31 && m == January)
259263
// Saka New Year
260264
|| (d == 31 && m == March)
261-
// Labour Day
262-
|| (d == 1 && m == May)
263265
// Birth of Buddha
264266
|| (d == 15 && m == May)
265267
// Isra' Mi'raj of the prophet Muhammad SAW
@@ -276,6 +278,311 @@ namespace QuantLib {
276278
return false;
277279
}
278280

281+
if (y == 2015) {
282+
if (// Chinese New Year
283+
(d == 19 && m == February)
284+
// Birth of Buddha
285+
|| (d == 2 && m == June)
286+
// Ied ul-Fitr
287+
|| ((d == 16 || d == 17) && m == July)
288+
|| ((d == 20 || d == 21) && m == July)
289+
// Eid ul-Adha
290+
|| (d == 24 && m == September)
291+
// Islamic New Year
292+
|| (d == 14 && m == October)
293+
// Regional elections
294+
|| (d == 9 && m == December)
295+
// Birthday of the prophet Muhammad SAW
296+
|| (d == 24 && m == December)
297+
// Trading Holiday
298+
|| (d == 31 && m == December)
299+
)
300+
return false;
301+
}
302+
303+
if (y == 2016) {
304+
if (// Chinese New Year
305+
(d == 8 && m == February)
306+
// Saka New Year
307+
|| (d == 9 && m == March)
308+
// Isra' Mi'raj of the prophet Muhammad SAW
309+
|| (d == 6 && m == May)
310+
// Ied ul-Fitr
311+
|| (d >= 4 && d <= 8 && m == July)
312+
// Eid ul-Adha
313+
|| (d == 12 && m == September)
314+
// Birthday of the prophet Muhammad SAW
315+
|| (d == 12 && m == December)
316+
// National leave
317+
|| (d == 26 && m == December)
318+
)
319+
return false;
320+
}
321+
322+
if (y == 2017) {
323+
if (// National leave
324+
(d == 2 && m == January)
325+
// Regional elections
326+
|| (d == 15 && m == February)
327+
// Saka New Year
328+
|| (d == 28 && m == March)
329+
// Regional elections (Jakarta runoff)
330+
|| (d == 19 && m == April)
331+
// Isra' Mi'raj of the prophet Muhammad SAW
332+
|| (d == 24 && m == April)
333+
// Birth of Buddha
334+
|| (d == 11 && m == May)
335+
// Ied ul-Fitr
336+
|| (d == 23 && m == June)
337+
|| (d >= 26 && d <= 30 && m == June)
338+
// Eid ul-Adha
339+
|| (d == 1 && m == September)
340+
// Islamic New Year
341+
|| (d == 21 && m == September)
342+
// Birthday of the prophet Muhammad SAW
343+
|| (d == 1 && m == December)
344+
// National leave
345+
|| (d == 26 && m == December)
346+
)
347+
return false;
348+
}
349+
350+
if (y == 2018) {
351+
if (// Chinese New Year
352+
(d == 16 && m == February)
353+
// Birth of Buddha
354+
|| (d == 29 && m == May)
355+
// Ied ul-Fitr
356+
|| (d >= 11 && d <= 15 && m == June)
357+
|| ((d == 18 || d == 19) && m == June)
358+
// Eid ul-Adha
359+
|| (d == 22 && m == August)
360+
// Islamic New Year
361+
|| (d == 11 && m == September)
362+
// Birthday of the prophet Muhammad SAW
363+
|| (d == 20 && m == November)
364+
// National leave
365+
|| (d == 24 && m == December)
366+
// Trading Holiday
367+
|| (d == 31 && m == December)
368+
)
369+
return false;
370+
}
371+
372+
if (y == 2019) {
373+
if (// Chinese New Year
374+
(d == 5 && m == February)
375+
// Saka New Year
376+
|| (d == 7 && m == March)
377+
// Isra' Mi'raj of the prophet Muhammad SAW
378+
|| (d == 3 && m == April)
379+
// General elections
380+
|| (d == 17 && m == April)
381+
// Ied ul-Fitr
382+
|| (d >= 3 && d <= 7 && m == June)
383+
// National leave
384+
|| (d == 24 && m == December)
385+
// Trading Holiday
386+
|| (d == 31 && m == December)
387+
)
388+
return false;
389+
}
390+
391+
if (y == 2020) {
392+
if (// Saka New Year
393+
(d == 25 && m == March)
394+
// Birth of Buddha
395+
|| (d == 7 && m == May)
396+
// Ied ul-Fitr
397+
|| (d == 22 && m == May)
398+
|| (d == 25 && m == May)
399+
// Eid ul-Adha
400+
|| (d == 31 && m == July)
401+
// Islamic New Year
402+
|| (d == 20 && m == August)
403+
// National leave
404+
|| (d == 21 && m == August)
405+
|| (d == 28 && m == October)
406+
// Birthday of the prophet Muhammad SAW
407+
|| (d == 29 && m == October)
408+
// National leave
409+
|| (d == 30 && m == October)
410+
// Regional elections
411+
|| (d == 9 && m == December)
412+
// National leave
413+
|| (d == 24 && m == December)
414+
// Ied ul-Fitr
415+
|| (d == 31 && m == December)
416+
)
417+
return false;
418+
}
419+
420+
if (y == 2021) {
421+
if (// Chinese New Year
422+
(d == 12 && m == February)
423+
// Isra' Mi'raj of the prophet Muhammad SAW
424+
|| (d == 11 && m == March)
425+
// Ied ul-Fitr
426+
|| (d == 12 && m == May)
427+
|| (d == 14 && m == May)
428+
// Birth of Buddha
429+
|| (d == 26 && m == May)
430+
// Eid ul-Adha
431+
|| (d == 20 && m == July)
432+
// Islamic New Year
433+
|| (d == 11 && m == August)
434+
// Birthday of the prophet Muhammad SAW
435+
|| (d == 20 && m == October)
436+
// Trading Holiday
437+
|| (d == 31 && m == December)
438+
)
439+
return false;
440+
}
441+
442+
if (y == 2022) {
443+
if (// Chinese New Year
444+
(d == 1 && m == February)
445+
// Isra' Mi'raj of the prophet Muhammad SAW
446+
|| (d == 28 && m == February)
447+
// Saka New Year
448+
|| (d == 3 && m == March)
449+
// Ied ul-Fitr
450+
|| ((d == 2 || d == 3) && m == May)
451+
// Birth of Buddha
452+
|| (d == 16 && m == May)
453+
)
454+
return false;
455+
}
456+
457+
if (y == 2023) {
458+
if (// National leave
459+
(d == 23 && m == January)
460+
// Saka New Year
461+
|| (d == 22 && m == March)
462+
// National leave
463+
|| (d == 23 && m == March)
464+
// Ied ul-Fitr
465+
|| (d >= 19 && d <= 21 && m == April)
466+
|| ((d == 24 || d == 25) && m == April)
467+
// National leave
468+
|| (d == 2 && m == June)
469+
|| (d == 28 && m == June)
470+
// Eid ul-Adha
471+
|| (d == 29 && m == June)
472+
// National leave
473+
|| (d == 30 && m == June)
474+
// Islamic New Year
475+
|| (d == 19 && m == July)
476+
// Birthday of the prophet Muhammad SAW
477+
|| (d == 28 && m == September)
478+
// National leave
479+
|| (d == 26 && m == December)
480+
)
481+
return false;
482+
}
483+
484+
if (y == 2024) {
485+
if (// Isra' Mi'raj of the prophet Muhammad SAW
486+
(d == 8 && m == February)
487+
// National leave
488+
|| (d == 9 && m == February)
489+
// General elections
490+
|| (d == 14 && m == February)
491+
// Saka New Year
492+
|| (d == 11 && m == March)
493+
// National leave
494+
|| (d == 12 && m == March)
495+
// Ied ul-Fitr
496+
|| (d >= 8 && d <= 12 && m == April)
497+
|| (d == 15 && m == April)
498+
// National leave
499+
|| (d == 10 && m == May)
500+
// Birth of Buddha
501+
|| (d == 23 && m == May)
502+
// National leave
503+
|| (d == 24 && m == May)
504+
// Eid ul-Adha
505+
|| (d == 17 && m == June)
506+
// National leave
507+
|| (d == 18 && m == June)
508+
// Birthday of the prophet Muhammad SAW
509+
|| (d == 16 && m == September)
510+
// Regional elections
511+
|| (d == 27 && m == November)
512+
// National leave
513+
|| (d == 26 && m == December)
514+
// Trading Holiday
515+
|| (d == 31 && m == December)
516+
)
517+
return false;
518+
}
519+
520+
if (y == 2025) {
521+
if (// Isra' Mi'raj of the prophet Muhammad SAW
522+
(d == 27 && m == January)
523+
// National leave
524+
|| (d == 28 && m == January)
525+
// Chinese New Year
526+
|| (d == 29 && m == January)
527+
// National leave
528+
|| (d == 28 && m == March)
529+
// Ied ul-Fitr
530+
|| (d == 31 && m == March)
531+
|| (d >= 1 && d <= 4 && m == April)
532+
|| (d == 7 && m == April)
533+
// Birth of Buddha
534+
|| (d == 12 && m == May)
535+
// National leave
536+
|| (d == 13 && m == May)
537+
|| (d == 30 && m == May)
538+
// Eid ul-Adha
539+
|| (d == 6 && m == June)
540+
// National leave
541+
|| (d == 9 && m == June)
542+
// Islamic New Year
543+
|| (d == 27 && m == June)
544+
// Birthday of the prophet Muhammad SAW
545+
|| (d == 5 && m == September)
546+
// National leave
547+
|| (d == 26 && m == December)
548+
// Trading Holiday
549+
|| (d == 31 && m == December)
550+
)
551+
return false;
552+
}
553+
554+
if (y == 2026) {
555+
if (// Isra' Mi'raj of the prophet Muhammad SAW
556+
(d == 16 && m == January)
557+
// National leave
558+
|| (d == 16 && m == February)
559+
// Chinese New Year
560+
|| (d == 17 && m == February)
561+
// National leave
562+
|| (d == 18 && m == March)
563+
// Saka New Year
564+
|| (d == 19 && m == March)
565+
// Ied ul-Fitr
566+
|| (d == 20 && m == March)
567+
|| ((d == 23 || d == 24) && m == March)
568+
// National leave
569+
|| (d == 15 && m == May)
570+
// Eid ul-Adha
571+
|| (d == 27 && m == May)
572+
// National leave
573+
|| (d == 28 && m == May)
574+
// Islamic New Year
575+
|| (d == 16 && m == June)
576+
// Birthday of the prophet Muhammad SAW
577+
|| (d == 25 && m == August)
578+
// National leave
579+
|| (d == 24 && m == December)
580+
// Trading Holiday
581+
|| (d == 31 && m == December)
582+
)
583+
return false;
584+
}
585+
279586
return true;
280587
}
281588

0 commit comments

Comments
 (0)