@@ -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