Exemple #1
0
 bool Ukraine::UseImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // New Year's Day (possibly moved to Monday)
         || ((d == 1 || ((d == 2 || d == 3) && w == Monday))
             && m == January)
         // Orthodox Christmas
         || ((d == 7 || ((d == 8 || d == 9) && w == Monday))
             && m == January)
         // Women's Day
         || ((d == 8 || ((d == 9 || d == 10) && w == Monday))
             && m == March)
         // Orthodox Easter Monday
         || (dd == em)
         // Holy Trinity Day
         || (dd == em+49)
         // Workers' Solidarity Days
         || ((d == 1 || d == 2 || (d == 3 && w == Monday)) && m == May)
         // Victory Day
         || ((d == 9 || ((d == 10 || d == 11) && w == Monday)) && m == May)
         // Constitution Day
         || (d == 28 && m == June)
         // Independence Day
         || (d == 24 && m == August)
         // Defender's Day (since 2015)
         || (d == 14 && m == October && y >= 2015))
         return false;
     return true;
 }
Exemple #2
0
    bool SaudiArabia::TadawulImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();

        if (isWeekend(w)
            // National Day
            || (d == 23 && m == September)
            // Eid Al-Adha
            || (d >= 1 && d <= 6 && m == February && y==2004)
            || (d >= 21 && d <= 25 && m == January && y==2005)
            || (d >= 26 && m == November && y==2009)
            || (d <= 4 && m == December && y==2009)
            || (d >= 11 && d <= 19 && m == November && y==2010)
            // Eid Al-Fitr
            || (d >= 25 && d <= 29 && m == November && y==2004)
            || (d >= 14 && d <= 18 && m == November && y==2005)
            || (d >= 25 && m == August && y==2011)
            || (d <= 2 && m == September && y==2011)
            // other one-shot holidays
            || (d == 26 && m == February && y==2011)
            || (d == 19 && m == March && y==2011)
            )
            return false;
        return true;
    }
 bool UnitedStates::SettlementImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth();
     Month m = date.month();
     if (isWeekend(w)
         // New Year's Day (possibly moved to Monday if on Sunday)
         || ((d == 1 || (d == 2 && w == Monday)) && m == January)
         // (or to Friday if on Saturday)
         || (d == 31 && w == Friday && m == December)
         // Martin Luther King's birthday (third Monday in January)
         || ((d >= 15 && d <= 21) && w == Monday && m == January)
         // Washington's birthday (third Monday in February)
         || ((d >= 15 && d <= 21) && w == Monday && m == February)
         // Memorial Day (last Monday in May)
         || (d >= 25 && w == Monday && m == May)
         // Independence Day (Monday if Sunday or Friday if Saturday)
         || ((d == 4 || (d == 5 && w == Monday) ||
              (d == 3 && w == Friday)) && m == July)
         // Labor Day (first Monday in September)
         || (d <= 7 && w == Monday && m == September)
         // Columbus Day (second Monday in October)
         || ((d >= 8 && d <= 14) && w == Monday && m == October)
         // Veteran's Day (Monday if Sunday or Friday if Saturday)
         || ((d == 11 || (d == 12 && w == Monday) ||
              (d == 10 && w == Friday)) && m == November)
         // Thanksgiving Day (fourth Thursday in November)
         || ((d >= 22 && d <= 28) && w == Thursday && m == November)
         // Christmas (Monday if Sunday or Friday if Saturday)
         || ((d == 25 || (d == 26 && w == Monday) ||
              (d == 24 && w == Friday)) && m == December))
         return false;
     return true;
 }
Exemple #4
0
 bool Norway::Impl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // Holy Thursday
         || (dd == em-4)
         // Good Friday
         || (dd == em-3)
         // Easter Monday
         || (dd == em)
         // Ascension Thursday
         || (dd == em+38)
         // Whit Monday
         || (dd == em+49)
         // New Year's Day
         || (d == 1  && m == January)
         // May Day
         || (d == 1  && m == May)
         // National Independence Day
         || (d == 17  && m == May)
         // Christmas
         || (d == 25 && m == December)
         // Boxing Day
         || (d == 26 && m == December))
         return false;
     return true;
 }
Exemple #5
0
    bool Brazil::SettlementImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();
        Day dd = date.dayOfYear();
        Day em = easterMonday(y);

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            // Tiradentes Day
            || (d == 21 && m == April)
            // Labor Day
            || (d == 1 && m == May)
            // Independence Day
            || (d == 7 && m == September)
            // Nossa Sra. Aparecida Day
            || (d == 12 && m == October)
            // All Souls Day
            || (d == 2 && m == November)
            // Republic Day
            || (d == 15 && m == November)
            // Christmas
            || (d == 25 && m == December)
            // Passion of Christ
            || (dd == em-3)
            // Carnival
            || (dd == em-49 || dd == em-48)
            // Corpus Christi
            || (dd == em+59)
            )
            return false;
        return true;
    }
Exemple #6
0
 bool Romania::Impl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // New Year's Day
         || (d == 1 && m == January)
         // Day after New Year's Day
         || (d == 2 && m == January)
         // Unification Day
         || (d == 24 && m == January)
         // Orthodox Easter Monday
         || (dd == em)
         // Labour Day
         || (d == 1 && m == May)
         // Pentecost
         || (dd == em+49)
         // St Marys Day
         || (d == 15 && m == August)
         // Feast of St Andrew
         || (d == 30 && m == November)
         // National Day
         || (d == 1 && m == December)
         // Christmas
         || (d == 25 && m == December)
         // 2nd Day of Chritsmas
         || (d == 26 && m == December))
         return false;
     return true;
 }
Exemple #7
0
 bool Italy::ExchangeImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // New Year's Day
         || (d == 1 && m == January)
         // Good Friday
         || (dd == em-3)
         // Easter Monday
         || (dd == em)
         // Labour Day
         || (d == 1 && m == May)
         // Assumption
         || (d == 15 && m == August)
         // Christmas' Eve
         || (d == 24 && m == December)
         // Christmas
         || (d == 25 && m == December)
         // St. Stephen
         || (d == 26 && m == December)
         // New Year's Eve
         || (d == 31 && m == December))
         return false;
     return true;
 }
Exemple #8
0
 bool Italy::SettlementImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // New Year's Day
         || (d == 1 && m == January)
         // Epiphany
         || (d == 6 && m == January)
         // Easter Monday
         || (dd == em)
         // Liberation Day
         || (d == 25 && m == April)
         // Labour Day
         || (d == 1 && m == May)
         // Republic Day
         || (d == 2 && m == June && y >= 2000)
         // Assumption
         || (d == 15 && m == August)
         // All Saints' Day
         || (d == 1 && m == November)
         // Immaculate Conception
         || (d == 8 && m == December)
         // Christmas
         || (d == 25 && m == December)
         // St. Stephen
         || (d == 26 && m == December)
         // December 31st, 1999 only
         || (d == 31 && m == December && y == 1999))
         return false;
     return true;
 }
Exemple #9
0
 bool Russia::SettlementImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth();
     Month m = date.month();
     if (isWeekend(w)
         // New Year's holidays
         || (d >= 1 && d <= 8 && m == January)
         // Defender of the Fatherland Day (possibly moved to Monday)
         || ((d == 23 || ((d == 24 || d == 25) && w == Monday)) &&
             m == February)
         // International Women's Day (possibly moved to Monday)
         || ((d == 8 || ((d == 9 || d == 10) && w == Monday)) &&
             m == March)
         // Labour Day (possibly moved to Monday)
         || ((d == 1 || ((d == 2 || d == 3) && w == Monday)) &&
             m == May)
         // Victory Day (possibly moved to Monday)
         || ((d == 9 || ((d == 10 || d == 11) && w == Monday)) &&
             m == May)
         // Russia Day (possibly moved to Monday)
         || ((d == 12 || ((d == 13 || d == 14) && w == Monday)) &&
             m == June)
         // Unity Day (possibly moved to Monday)
         || ((d == 4 || ((d == 5 || d == 6) && w == Monday)) &&
             m == November))
         return false;
     return true;
 }
void CallsManager::addCall(Abonent* _abonent, std::string number)
{
	assert(_abonent);
	assert(number.length());
	printf("\n-------------------------------START_CALLING------------------------\n");
	printf("Abonent %s is start calling", _abonent->getData()->getName().c_str());
	activeCall = new ActiveCall(_abonent , number);
	activeCall->startCall();

	activeCall->setIsHomeNetwork(isHomeNetwork());
	activeCall->setIsWeekEnd(isWeekend());
}
Exemple #11
0
    bool Brazil::ExchangeImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();
        Day dd = date.dayOfYear();
        Day em = easterMonday(y);

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            // Sao Paulo City Day
            || (d == 25 && m == January)
            // Tiradentes Day
            || (d == 21 && m == April)
            // Labor Day
            || (d == 1 && m == May)
            // Revolution Day
            || (d == 9 && m == July)
            // Independence Day
            || (d == 7 && m == September)
            // Nossa Sra. Aparecida Day
            || (d == 12 && m == October)
            // All Souls Day
            || (d == 2 && m == November)
            // Republic Day
            || (d == 15 && m == November)
            // Black Consciousness Day
            || (d == 20 && m == November && y >= 2007)
            // Christmas
            || (d == 25 && m == December)
            // Passion of Christ
            || (dd == em-3)
            // Carnival
            || (dd == em-49 || dd == em-48)
            // Corpus Christi
            || (dd == em+59)
            // last business day of the year
            || (m == December && (d == 31 || (d >= 29 && w == Friday)))
            )
            return false;
        return true;
    }
 bool UnitedStates::NercImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth();
     Month m = date.month();
     if (isWeekend(w)
         // New Year's Day (possibly moved to Monday if on Sunday)
         || ((d == 1 || (d == 2 && w == Monday)) && m == January)
         // Memorial Day (last Monday in May)
         || (d >= 25 && w == Monday && m == May)
         // Independence Day (Monday if Sunday)
         || ((d == 4 || (d == 5 && w == Monday)) && m == July)
         // Labor Day (first Monday in September)
         || (d <= 7 && w == Monday && m == September)
         // Thanksgiving Day (fourth Thursday in November)
         || ((d >= 22 && d <= 28) && w == Thursday && m == November)
         // Christmas (Monday if Sunday)
         || ((d == 25 || (d == 26 && w == Monday)) && m == December))
         return false;
     return true;
 }
Exemple #13
0
 bool UnitedKingdom::ExchangeImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // New Year's Day (possibly moved to Monday)
         || ((d == 1 || ((d == 2 || d == 3) && w == Monday)) &&
             m == January)
         // Good Friday
         || (dd == em-3)
         // Easter Monday
         || (dd == em)
         // first Monday of May (Early May Bank Holiday)
         || (d <= 7 && w == Monday && m == May)
         // last Monday of May (Spring Bank Holiday)
         || (d >= 25 && w == Monday && m == May && y != 2002 && y != 2012)
         // last Monday of August (Summer Bank Holiday)
         || (d >= 25 && w == Monday && m == August)
         // Christmas (possibly moved to Monday or Tuesday)
         || ((d == 25 || (d == 27 && (w == Monday || w == Tuesday)))
             && m == December)
         // Boxing Day (possibly moved to Monday or Tuesday)
         || ((d == 26 || (d == 28 && (w == Monday || w == Tuesday)))
             && m == December)
         // June 3rd, 2002 only (Golden Jubilee Bank Holiday)
         // June 4rd, 2002 only (special Spring Bank Holiday)
         || ((d == 3 || d == 4) && m == June && y == 2002)
         // April 29th, 2011 only (Royal Wedding Bank Holiday)
         || (d == 29 && m == April && y == 2011)
         // June 4th, 2012 only (Diamond Jubilee Bank Holiday)
         // June 5th, 2012 only (Special Spring Bank Holiday)
         || ((d == 4 || d == 5) && m == June && y == 2012)
         // December 31st, 1999 only
         || (d == 31 && m == December && y == 1999))
         return false;
     return true;
 }
Exemple #14
0
 bool CzechRepublic::PseImpl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // New Year's Day
         || (d == 1 && m == January)
         // Easter Monday
         || (dd == em)
         // Labour Day
         || (d == 1 && m == May)
         // Liberation Day
         || (d == 8 && m == May)
         // SS. Cyril and Methodius
         || (d == 5 && m == July)
         // Jan Hus Day
         || (d == 6 && m == July)
         // Czech Statehood Day
         || (d == 28 && m == September)
         // Independence Day
         || (d == 28 && m == October)
         // Struggle for Freedom and Democracy Day
         || (d == 17 && m == November)
         // Christmas Eve
         || (d == 24 && m == December)
         // Christmas
         || (d == 25 && m == December)
         // St. Stephen
         || (d == 26 && m == December)
         // unidentified closing days for stock exchange
         || (d == 2 && m == January && y == 2004)
         || (d == 31 && m == December && y == 2004))
         return false;
     return true;
 }
Exemple #15
0
 bool NewZealand::Impl::isBusinessDay(const Date& date) const {
     Weekday w = date.weekday();
     Day d = date.dayOfMonth(), dd = date.dayOfYear();
     Month m = date.month();
     Year y = date.year();
     Day em = easterMonday(y);
     if (isWeekend(w)
         // New Year's Day (possibly moved to Monday or Tuesday)
         || ((d == 1 || (d == 3 && (w == Monday || w == Tuesday))) &&
             m == January)
         // Day after New Year's Day (possibly moved to Mon or Tuesday)
         || ((d == 2 || (d == 4 && (w == Monday || w == Tuesday))) &&
             m == January)
         // Anniversary Day, Monday nearest January 22nd
         || ((d >= 19 && d <= 25) && w == Monday && m == January)
         // Waitangi Day. February 6th
         || (d == 6 && m == February)
         // Good Friday
         || (dd == em-3)
         // Easter Monday
         || (dd == em)
         // ANZAC Day. April 25th
         || (d == 25 && m == April)
         // Queen's Birthday, first Monday in June
         || (d <= 7 && w == Monday && m == June)
         // Labour Day, fourth Monday in October
         || ((d >= 22 && d <= 28) && w == Monday && m == October)
         // Christmas, December 25th (possibly Monday or Tuesday)
         || ((d == 25 || (d == 27 && (w == Monday || w == Tuesday)))
             && m == December)
         // Boxing Day, December 26th (possibly Monday or Tuesday)
         || ((d == 26 || (d == 28 && (w == Monday || w == Tuesday)))
             && m == December))
         return false;
     return true;
 }
Exemple #16
0
    bool Singapore::SgxImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth(), dd = date.dayOfYear();
        Month m = date.month();
        Year y = date.year();
        Day em = easterMonday(y);

        if (isWeekend(w)
            // New Year's Day
            || ((d == 1 || (d == 2 && w == Monday)) && m == January)
            // Good Friday
            || (dd == em-3)
            // Labor Day
            || (d == 1 && m == May)
            // National Day
            || ((d == 9 || (d == 10 && w == Monday)) && m == August)
            // Christmas Day
            || (d == 25 && m == December)

            // Chinese New Year
            || ((d == 22 || d == 23) && m == January && y == 2004)
            || ((d == 9 || d == 10) && m == February && y == 2005)
            || ((d == 30 || d == 31) && m == January && y == 2006)
            || ((d == 19 || d == 20) && m == February && y == 2007)
            || ((d == 7 || d == 8) && m == February && y == 2008)
            || ((d == 26 || d == 27) && m == January && y == 2009)
            || ((d == 15 || d == 16) && m == January && y == 2010)
            || ((d == 23 || d == 24) && m == January && y == 2012)
            || ((d == 11 || d == 12) && m == February && y == 2013)
            || (d == 31 && m == January && y == 2014)
            || (d == 1 && m == February && y == 2014)

            // Hari Raya Haji
            || ((d == 1 || d == 2) && m == February && y == 2004)
            || (d == 21 && m == January && y == 2005)
            || (d == 10 && m == January && y == 2006)
            || (d == 2 && m == January && y == 2007)
            || (d == 20 && m == December && y == 2007)
            || (d == 8 && m == December && y == 2008)
            || (d == 27 && m == November && y == 2009)
            || (d == 17 && m == November && y == 2010)
            || (d == 26 && m == October && y == 2012)
            || (d == 15 && m == October && y == 2013)
            || (d == 6 && m == October && y == 2014)

            // Vesak Poya Day
            || (d == 2 && m == June && y == 2004)
            || (d == 22 && m == May && y == 2005)
            || (d == 12 && m == May && y == 2006)
            || (d == 31 && m == May && y == 2007)
            || (d == 18 && m == May && y == 2008)
            || (d == 9 && m == May && y == 2009)
            || (d == 28 && m == May && y == 2010)
            || (d == 5 && m == May && y == 2012)
            || (d == 24 && m == May && y == 2013)
            || (d == 13 && m == May && y == 2014)

            // Deepavali
            || (d == 11 && m == November && y == 2004)
            || (d == 8 && m == November && y == 2007)
            || (d == 28 && m == October && y == 2008)
            || (d == 16 && m == November && y == 2009)
            || (d == 5 && m == November && y == 2010)
            || (d == 13 && m == November && y == 2012)
            || (d == 2 && m == November && y == 2013)
            || (d == 23 && m == October && y == 2014)

            // Diwali
            || (d == 1 && m == November && y == 2005)

            // Hari Raya Puasa
            || ((d == 14 || d == 15) && m == November && y == 2004)
            || (d == 3 && m == November && y == 2005)
            || (d == 24 && m == October && y == 2006)
            || (d == 13 && m == October && y == 2007)
            || (d == 1 && m == October && y == 2008)
            || (d == 21 && m == September && y == 2009)
            || (d == 10 && m == September && y == 2010)
            || (d == 20 && m == August && y == 2012)
            || (d == 8 && m == August && y == 2013)
            || (d == 28 && m == July && y == 2014)
            )
            return false;
        return true;
    }
Exemple #17
0
    bool Thailand::SetImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();

        if (isWeekend(w)
            // New Year's Day
            || ((d == 1 || (d==3 && w==Monday)) && m == January)
            // Chakri Memorial Day
            || ((d == 6 || ((d==7 || d==8) && w==Monday)) && m == April)
            // Songkran Festival
            || ((d == 13 || d == 14 || d == 15) && m == April)
            // Songkran Festival obersvence (usually not more then 1 holiday will be replaced)
            || (d == 16 && (w == Monday || w == Tuesday) && m == April)
            // Labor Day
            || ((d == 1 || ((d==2 || d==3) && w==Monday)) && m == May)
            // H.M. the King's Birthday
            || ((d == 28 || ((d==29 || d==30) && w==Monday)) && m == July && y >= 2017)
            // H.M. the Queen's Birthday
            || ((d == 12 || ((d==13 || d==14) && w==Monday)) && m == August)
            // H.M. King Bhumibol Adulyadej Memorial Day
            || ((d == 3 || ((d==14 || d==15) && w==Monday)) && m == October && y >= 2017)
            // H.M. King Bhumibol Adulyadej's Birthday
            || ((d == 5 || ((d==6 || d==7) && w==Monday)) && m == December)
            // Constitution Day
            || ((d == 10 || ((d==11 || d==12) && w==Monday)) && m == December)
            // New Year’s Eve
            || (d == 31 && m == December)
            // New Year’s Eve Observence
            || ((d == 1 || d==2) && w == Monday && m == January)
            )
            return false;

        if ((y == 2000) &&
            (   (d==21 && m==February)  // Makha Bucha Day (Substitution Day)
             || (d==5  && m==May)       // Coronation Day
             || (d==17 && m==May)       // Wisakha Bucha Day
             || (d==17 && m==July)      // Buddhist Lent Day
             || (d==23 && m==October)   // Chulalongkorn Day
                ))
            return false;

        if ((y == 2001) &&
            (   (d==8 && m==February) // Makha Bucha Day
             || (d==7 && m==May)      // Wisakha Bucha Day
             || (d==8 && m==May)      // Coronation Day (Substitution Day)
             || (d==6 && m==July)     // Buddhist Lent Day
             || (d==23 && m==October) // Chulalongkorn Day
                ))
            return false;

        // 2002, 2003 and 2004 are missing

        if ((y == 2005) &&
            (   (d==23 && m==February) // Makha Bucha Day
             || (d==5 && m==May)       // Coronation Day
             || (d==23 && m==May)      // Wisakha Bucha Day (Substitution Day for Sunday 22 May)
             || (d==1 && m==July)      // Mid Year Closing Day
             || (d==22 && m==July)     // Buddhist Lent Day
             || (d==24 && m==October)  // Chulalongkorn Day (Substitution Day for Sunday 23 October)
                ))
            return false;

        if ((y == 2006) &&
            (  (d==13 && m==February) // Makha Bucha Day
            || (d==19 && m==April)    // Special Holiday
            || (d==5 && m==May)       // Coronation Day
            || (d==12 && m==May)      // Wisakha Bucha Day
            || (d==12 && m==June)     // Special Holidays (Due to the auspicious occasion of the
                                      // celebration of 60th Anniversary of His Majesty's Accession
                                      // to the throne. For Bangkok, Samut Prakan, Nonthaburi,
                                      // Pathumthani and Nakhon Pathom province)
            || (d==13 && m==June)     // Special Holidays (as above)
            || (d==11 && m==July)     // Buddhist Lent Day
            || (d==23 && m==October)  // Chulalongkorn Day
               ))
            return false;

        if ((y == 2007) &&
            (   (d==5 && m==March)     // Makha Bucha Day (Substitution Day for Saturday 3 March)
             || (d==7 && m==May)       // Coronation Day (Substitution Day for Saturday 5 May)
             || (d==31 && m==May)      // Wisakha Bucha Day
             || (d==30 && m==July)     // Asarnha Bucha Day (Substitution Day for Sunday 29 July)
             || (d==23 && m==October)  // Chulalongkorn Day
             || (d==24 && m==December) // Special Holiday
                ))
            return false;

        if ((y == 2008) &&
            (   (d==21 && m==February) // Makha Bucha Day
             || (d==5 && m==May)       // Coronation Day
             || (d==19 && m==May)      // Wisakha Bucha Day
             || (d==1 && m==July)      // Mid Year Closing Day
             || (d==17 && m==July)     // Asarnha Bucha Day
             || (d==23 && m==October)  // Chulalongkorn Day
               ))
            return false;

        if ((y == 2009) &&
            (   (d==2 && m==January)  // Special Holiday
             || (d==9 && m==February) // Makha Bucha Day
             || (d==5 && m==May)      // Coronation Day
             || (d==8 && m==May)      // Wisakha Bucha Day
             || (d==1 && m==July)     // Mid Year Closing Day
             || (d==6 && m==July)     // Special Holiday
             || (d==7 && m==July)     // Asarnha Bucha Day
             || (d==23 && m==October) // Chulalongkorn Day
               ))
            return false;

        if ((y == 2010) &&
            (   (d==1 && m==March)    // Substitution for Makha Bucha Day(Sunday 28 February)
             || (d==5 && m==May)      // Coronation Day
             || (d==20 && m==May)     // Special Holiday
             || (d==21 && m==May)     // Special Holiday
             || (d==28 && m==May)     // Wisakha Bucha Day
             || (d==1 && m==July)     // Mid Year Closing Day
             || (d==26 && m==July)    // Asarnha Bucha Day
             || (d==13 && m==August)  // Special Holiday
             || (d==25 && m==October) // Substitution for Chulalongkorn Day(Saturday 23 October)
               ))
            return false;

        if ((y == 2011) &&
            (   (d==18 && m==February) // Makha Bucha Day
             || (d==5 && m==May)       // Coronation Day
             || (d==16 && m==May)      // Special Holiday
             || (d==17 && m==May)      // Wisakha Bucha Day
             || (d==1 && m==July)      // Mid Year Closing Day
             || (d==15 && m==July)     // Asarnha Bucha Day
             || (d==24 && m==October)  // Substitution for Chulalongkorn Day(Sunday 23 October)
               ))
            return false;

        if ((y == 2012) &&
            (   (d==3 && m==January)  // Special Holiday
             || (d==7 && m==March)    // Makha Bucha Day 2/
             || (d==9 && m==April)    // Special Holiday
             || (d==7 && m==May)      // Substitution for Coronation Day(Saturday 5 May)
             || (d==4 && m==June)     // Wisakha Bucha Day
             || (d==2 && m==August)   // Asarnha Bucha Day
             || (d==23 && m==October) // Chulalongkorn Day
                ))
            return false;

        if ((y == 2013) &&
            (   (d==25 && m==February) // Makha Bucha Day
             || (d==6 && m==May)       // Substitution for Coronation Day(Sunday 5 May)
             || (d==24 && m==May)      // Wisakha Bucha Day
             || (d==1 && m==July)      // Mid Year Closing Day
             || (d==22 && m==July)     // Asarnha Bucha Day 2/
             || (d==23 && m==October)  // Chulalongkorn Day
             || (d==30 && m==December) // Special Holiday
                ))
            return false;

        if ((y == 2014) &&
            (   (d==14 && m==February) // Makha Bucha Day
             || (d==5 && m==May)       // Coronation Day
             || (d==13 && m==May)      // Wisakha Bucha Day
             || (d==1 && m==July)      // Mid Year Closing Day
             || (d==11 && m==July)     // Asarnha Bucha Day 1/
             || (d==11 && m==August)   // Special Holiday
             || (d==23 && m==October)  // Chulalongkorn Day
                ))
            return false;

        if ((y == 2015) &&
            (   (d==2 && m==January)  // Special Holiday
             || (d==4 && m==March)    // Makha Bucha Day
             || (d==4 && m==May)      // Special Holiday
             || (d==5 && m==May)      // Coronation Day
             || (d==1 && m==June)     // Wisakha Bucha Day
             || (d==1 && m==July)     // Mid Year Closing Day
             || (d==30 && m==July)    // Asarnha Bucha Day 1/
             || (d==23 && m==October) // Chulalongkorn Day
                ))
            return false;

        if ((y == 2016) &&
            (   (d==22 && m==February) // Makha Bucha Day
             || (d==5 && m==May)       // Coronation Day
             || (d==6 && m==May)       // Special Holiday
             || (d==20 && m==May)      // Wisakha Bucha Day
             || (d==1 && m==July)      //  Mid Year Closing Day
             || (d==18 && m==July)     // Special Holiday
             || (d==19 && m==July)     // Asarnha Bucha Day 1/
             || (d==24 && m==October)  // Substitution for Chulalongkorn Day (Sunday 23rd October)
                ))
            return false;

        // 2017 is missing

        if ((y == 2018) &&
            (   (d==1 && m==March)    // Makha Bucha Day
             || (d==29 && m==May)     // Wisakha Bucha Day
             || (d==27 && m==July)    // Asarnha Bucha Day1
             || (d==23 && m==October) // Chulalongkorn Day
                ))
            return false;

        return true;
    }
    bool UnitedStates::NyseImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth(), dd = date.dayOfYear();
        Month m = date.month();
        Year y = date.year();
        Day em = easterMonday(y);
        if (isWeekend(w)
            // New Year's Day (possibly moved to Monday if on Sunday)
            || ((d == 1 || (d == 2 && w == Monday)) && m == January)
            // Washington's birthday (third Monday in February)
            || ((d >= 15 && d <= 21) && w == Monday && m == February)
            // Good Friday
            || (dd == em-3)
            // Memorial Day (last Monday in May)
            || (d >= 25 && w == Monday && m == May)
            // Independence Day (Monday if Sunday or Friday if Saturday)
            || ((d == 4 || (d == 5 && w == Monday) ||
                 (d == 3 && w == Friday)) && m == July)
            // Labor Day (first Monday in September)
            || (d <= 7 && w == Monday && m == September)
            // Thanksgiving Day (fourth Thursday in November)
            || ((d >= 22 && d <= 28) && w == Thursday && m == November)
            // Christmas (Monday if Sunday or Friday if Saturday)
            || ((d == 25 || (d == 26 && w == Monday) ||
                 (d == 24 && w == Friday)) && m == December)
            ) return false;

        if (y >= 1998) {
            if (// Martin Luther King's birthday (third Monday in January)
                ((d >= 15 && d <= 21) && w == Monday && m == January)
                // President Reagan's funeral
                || (y == 2004 && m == June && d == 11)
                // September 11, 2001
                || (y == 2001 && m == September && (11 <= d && d <= 14))
                // President Ford's funeral
                || (y == 2007 && m == January && d == 2)
                ) return false;
        } else if (y <= 1980) {
            if (// Presidential election days
                ((y % 4 == 0) && m == November && d <= 7 && w == Tuesday)
                // 1977 Blackout
                || (y == 1977 && m == July && d == 14)
                // Funeral of former President Lyndon B. Johnson.
                || (y == 1973 && m == January && d == 25)
                // Funeral of former President Harry S. Truman
                || (y == 1972 && m == December && d == 28)
                // National Day of Participation for the lunar exploration.
                || (y == 1969 && m == July && d == 21)
                // Funeral of former President Eisenhower.
                || (y == 1969 && m == March && d == 31)
                // Closed all day - heavy snow.
                || (y == 1969 && m == February && d == 10)
                // Day after Independence Day.
                || (y == 1968 && m == July && d == 5)
                // June 12-Dec. 31, 1968
                // Four day week (closed on Wednesdays) - Paperwork Crisis
                || (y == 1968 && dd >= 163 && w == Wednesday)
                ) return false;
        } else {
            if (// Nixon's funeral
                (y == 1994 && m == April && d == 27)
                ) return false;
        }


        return true;
    }
Exemple #19
0
    bool Taiwan::TsecImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            // Peace Memorial Day
            || (d == 28 && m == February)
            // Labor Day
            || (d == 1 && m == May)
            // Double Tenth
            || (d == 10 && m == October)
            )
            return false;

        if (y == 2002) {
            // Dragon Boat Festival and Moon Festival fall on Saturday
            if (// Chinese Lunar New Year
                (d >= 9 && d <= 17 && m == February)
                // Tomb Sweeping Day
                || (d == 5 && m == April)
                )
                return false;
        }

        if (y == 2003) {
            // Tomb Sweeping Day falls on Saturday
            if (// Chinese Lunar New Year
                ((d >= 31 && m == January) || (d <= 5 && m == February))
                // Dragon Boat Festival
                || (d == 4 && m == June)
                // Moon Festival
                || (d == 11 && m == September)
                )
                return false;
        }

        if (y == 2004) {
            // Tomb Sweeping Day falls on Sunday
            if (// Chinese Lunar New Year
                (d >= 21 && d <= 26 && m == January)
                // Dragon Boat Festival
                || (d == 22 && m == June)
                // Moon Festival
                || (d == 28 && m == September)
                )
                return false;
        }

        if (y == 2005) {
            // Dragon Boat and Moon Festival fall on Saturday or Sunday
            if (// Chinese Lunar New Year
                (d >= 6 && d <= 13 && m == February)
                // Tomb Sweeping Day
                || (d == 5 && m == April)
                // make up for Labor Day, not seen in other years
                || (d == 2 && m == May)
                )
                return false;
        }

        if (y == 2006) {
            // Dragon Boat and Moon Festival fall on Saturday or Sunday
            if (// Chinese Lunar New Year
                ((d >= 28 && m == January) || (d <= 5 && m == February))
                // Tomb Sweeping Day
                || (d == 5 && m == April)
                // Dragon Boat Festival
                || (d == 31 && m == May)
                // Moon Festival
                || (d == 6 && m == October)
                )
                return false;
        }

        if (y == 2007) {
            if (// Chinese Lunar New Year
                (d >= 17 && d <= 25 && m == February)
                // Tomb Sweeping Day
                || (d == 5 && m == April)
                // adjusted holidays
                || (d == 6 && m == April)
                || (d == 18 && m == June)
                // Dragon Boat Festival
                || (d == 19 && m == June)
                // adjusted holiday
                || (d == 24 && m == September)
                // Moon Festival
                || (d == 25 && m == September)
                )
                return false;
        }

        if (y == 2008) {
            if (// Chinese Lunar New Year
                (d >= 4 && d <= 11 && m == February)
                // Tomb Sweeping Day
                || (d == 4 && m == April)
                )
                return false;
        }

        if (y == 2009) {
            if (// Public holiday
                (d == 2 && m == January)
                // Chinese Lunar New Year
                || (d >= 24 && m == January)
                // Tomb Sweeping Day
                || (d == 4 && m == April)
                // Dragon Boat Festival
                || ((d == 28 || d == 29) && m == May)
                // Moon Festival
                || (d == 3 && m == October)
                )
                return false;
        }

        if (y == 2010) {
            if (// Chinese Lunar New Year
                   (d >= 13 && d <= 21 && m == January)
                // Tomb Sweeping Day
                || (d == 5 && m == April)
                // Dragon Boat Festival
                || (d == 16 && m == May)
                // Moon Festival
                || (d == 22 && m == September)
                )
                return false;
        }

        return true;
    }
Exemple #20
0
    bool SouthKorea::SettlementImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            // Independence Day
            || (d == 1 && m == March)
            // Arbour Day
            || (d == 5 && m == April && y <= 2005)
            // Labour Day
            || (d == 1 && m == May)
            // Children's Day
            || (d == 5 && m == May)
            // Memorial Day
            || (d == 6 && m == June)
            // Constitution Day
            || (d == 17 && m == July && y <= 2007)
            // Liberation Day
            || (d == 15 && m == August)
            // National Foundation Day
            || (d == 3 && m == October)
            // Christmas Day
            || (d == 25 && m == December)

            // Lunar New Year
            || ((d == 21 || d==22 || d==23) && m == January && y == 2004)
            || ((d ==  8 || d ==  9 || d == 10) && m == February && y == 2005)
            || ((d == 28 || d == 29 || d == 30 ) && m == January && y == 2006)
            || (d == 19 && m == February && y == 2007)
            || ((d == 6 || d == 7 || d == 8) && m == February && y == 2008)
            || ((d == 25 || d == 26 || d == 27) && m == January && y == 2009)
            || ((d == 13 || d == 14 || d == 15) && m == February && y == 2010)
            // Election Days
            || (d == 15 && m == April && y == 2004)    // National Assembly
            || (d == 31 && m == May && y == 2006)      // Regional election
            || (d == 19 && m == December && y == 2007) // Presidency
            || (d ==  9 && m == April && y == 2008)    // National Assembly
            || (d ==  2 && m == June && y == 2010)     // Local election
            // Buddha's birthday
            || (d == 26 && m == May && y == 2004)
            || (d == 15 && m == May && y == 2005)
            || (d ==  5 && m == May && y == 2006)
            || (d == 24 && m == May && y == 2007)
            || (d == 12 && m == May && y == 2008)
            || (d ==  2 && m == May && y == 2009)
            || (d == 21 && m == May && y == 2010)
            // Harvest Moon Day
            || ((d == 27 || d == 28 || d == 29) && m == September && y == 2004)
            || ((d == 17 || d == 18 || d == 19) && m == September && y == 2005)
            || ((d ==  5 || d ==  6 || d ==  7) && m == October && y == 2006)
            || ((d == 24 || d == 25 || d == 26) && m == September && y == 2007)
            || ((d == 13 || d == 14 || d == 15) && m == September && y == 2008)
            || ((d ==  2 || d ==  3 || d ==  4) && m == October && y == 2009)
            || ((d == 21 || d == 22 || d == 23) && m == September && y == 2010)
            )
            return false;

        return true;
    }
Exemple #21
0
    bool China::SseImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            || (y == 2005 && d == 3 && m == January)
            || (y == 2006 && (d == 2 || d == 3) && m == January)
            || (y == 2007 && d <= 3 && m == January)
            || (y == 2007 && d == 31 && m == December)
            || (y == 2009 && d == 2 && m == January)
            || (y == 2011 && d == 3 && m == January)
            || (y == 2012 && (d == 2 || d == 3) && m == January)
            || (y == 2013 && d <= 3 && m == January)
            || (y == 2014 && d == 1 && m == January)
            || (y == 2015 && d <= 3 && m == January)
            // Chinese New Year
            || (y == 2004 && d >= 19 && d <= 28 && m == January)
            || (y == 2005 && d >=  7 && d <= 15 && m == February)
            || (y == 2006 && ((d >= 26 && m == January) ||
                              (d <= 3 && m == February)))
            || (y == 2007 && d >= 17 && d <= 25 && m == February)
            || (y == 2008 && d >= 6 && d <= 12 && m == February)
            || (y == 2009 && d >= 26 && d <= 30 && m == January)
            || (y == 2010 && d >= 15 && d <= 19 && m == February)
            || (y == 2011 && d >= 2 && d <= 8 && m == February)
            || (y == 2012 && d >= 23 && d <= 28 && m == January)
            || (y == 2013 && d >= 11 && d <= 15 && m == February)
            || (y == 2014 && d >= 31 && m == January)
            || (y == 2014 && d <= 6 && m == February)
            || (y == 2015 && d >= 18 && d <= 24 && m == February)
            || (y == 2016 && d >= 8 && d <= 12 && m == February)
            // Ching Ming Festival
            || (y <= 2008 && d == 4 && m == April)
            || (y == 2009 && d == 6 && m == April)
            || (y == 2010 && d == 5 && m == April)
            || (y == 2011 && d >=3 && d <= 5 && m == April)
            || (y == 2012 && d >= 2 && d <= 4 && m == April)
            || (y == 2013 && d >= 4 && d <= 5 && m == April)
            || (y == 2014 && d == 7 && m == April)
            || (y == 2015 && d >= 5 && d <= 6 && m == April)
            || (y == 2016 && d == 4 && m == April)
            // Labor Day
            || (y <= 2007 && d >= 1 && d <= 7 && m == May)
            || (y == 2008 && d >= 1 && d <= 2 && m == May)
            || (y == 2009 && d == 1 && m == May)
            || (y == 2010 && d == 3 && m == May)
            || (y == 2011 && d == 2 && m == May)
            || (y == 2012 && ((d == 30 && m == April) ||
                              (d == 1 && m == May)))
            || (y == 2013 && ((d >= 29 && m == April) ||
                              (d == 1 && m == May)))
            || (y == 2014 && d >= 1 && d <=3 && m == May)
            || (y == 2015 && d == 1 && m == May)
            || (y == 2016 && d == 1 && m == May)
            // Tuen Ng Festival
            || (y <= 2008 && d == 9 && m == June)
            || (y == 2009 && (d == 28 || d == 29) && m == May)
            || (y == 2010 && d >= 14 && d <= 16 && m == June)
            || (y == 2011 && d >= 4 && d <= 6 && m == June)
            || (y == 2012 && d >= 22 && d <= 24 && m == June)
            || (y == 2013 && d >= 10 && d <= 12 && m == June)
            || (y == 2014 && d == 2 && m == June)
            || (y == 2015 && d == 22 && m == June)
            || (y == 2016 && d >= 9 && d <= 10 && m == June)
            // Mid-Autumn Festival
            || (y <= 2008 && d == 15 && m == September)
            || (y == 2010 && d >= 22 && d <= 24 && m == September)
            || (y == 2011 && d >= 10 && d <= 12 && m == September)
            || (y == 2012 && d == 30 && m == September)
            || (y == 2013 && d >= 19 && d <= 20 && m == September)
            || (y == 2014 && d == 8 && m == September)
            || (y == 2015 && d == 27 && m == September)
            || (y == 2016 && d >= 15 && d <= 16 && m == September)
            // National Day
            || (y <= 2007 && d >= 1 && d <= 7 && m == October)
            || (y == 2008 && ((d >= 29 && m == September) ||
                              (d <= 3 && m == October)))
            || (y == 2009 && d >= 1 && d <= 8 && m == October)
            || (y == 2010 && d >= 1 && d <= 7 && m == October)
            || (y == 2011 && d >= 1 && d <= 7 && m == October)
            || (y == 2012 && d >= 1 && d <= 7 && m == October)
            || (y == 2013 && d >= 1 && d <= 7 && m == October)
            || (y == 2014 && d >= 1 && d <= 7 && m == October)
            || (y == 2015 && d >= 1 && d <= 7 && m == October)
            || (y == 2016 && d >= 3 && d <= 7 && m == October)
            // 70th anniversary of the victory of anti-Japaneses war
            || (y == 2015 && d >= 3 && d <= 4 && m == September)
            )
            return false;
        return true;
    }
Exemple #22
0
    bool Indonesia::BejImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();
        Day dd = date.dayOfYear();
        Day em = easterMonday(y);

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            // Good Friday
            || (dd == em-3)
            // Ascension Thursday
            || (dd == em+38)
            // Independence Day
            || (d == 17 && m == August)
            // Christmas
            || (d == 25 && m == December)
            )
            return false;

        if (y == 2005) {
            if (// Idul Adha
                (d == 21 && m == January)
                // Imlek
                || (d == 9 && m == February)
                // Moslem's New Year Day
                || (d == 10 && m == February)
                // Nyepi
                || (d == 11 && m == March)
                // Birthday of Prophet Muhammad SAW
                || (d == 22 && m == April)
                // Waisak
                || (d == 24 && m == May)
                // Ascension of Prophet Muhammad SAW
                || (d == 2 && m == September)
                // Idul Fitri
                || ((d == 3 || d == 4) && m == November)
                // National leaves
                || ((d == 2 || d == 7 || d == 8) && m == November)
                || (d == 26 && m == December)
                )
                return false;
        }

        if (y == 2006) {
            if (// Idul Adha
                (d == 10 && m == January)
                // Moslem's New Year Day
                || (d == 31 && m == January)
                // Nyepi
                || (d == 30 && m == March)
                // Birthday of Prophet Muhammad SAW
                || (d == 10 && m == April)
                // Ascension of Prophet Muhammad SAW
                || (d == 21 && m == August)
                // Idul Fitri
                || ((d == 24 || d == 25) && m == October)
                // National leaves
                || ((d == 23 || d == 26 || d == 27) && m == October)
                )
                return false;
        }

        if (y == 2007) {
            if (// Nyepi
                (d == 19 && m == March)
                // Waisak
                || (d == 1 && m == June)
                // Ied Adha
                || (d == 20 && m == December)
                // National leaves
                || (d == 18 && m == May)
                || ((d == 12 || d == 15 || d == 16) && m == October)
                || ((d == 21 || d == 24) && m == October)
                )
                return false;
        }

        if (y == 2008) {
            if (// Islamic New Year
                ((d == 10 || d == 11) && m == January)
                // Chinese New Year
                || ((d == 7 || d == 8) && m == February)
                // Saka's New Year
                || (d == 7 && m == March)
                // Birthday of the prophet Muhammad SAW
                || (d == 20 && m == March)
                // Vesak Day
                || (d == 20 && m == May)
                // Isra' Mi'raj of the prophet Muhammad SAW
                || (d == 30 && m == July)
                // National leave
                || (d == 18 && m == August)
                // Ied Fitr
                || (d == 30 && m == September)
                || ((d == 1 || d == 2 || d == 3) && m == October)
                // Ied Adha
                || (d == 8 && m == December)
                // Islamic New Year
                || (d == 29 && m == December)
                // New Year's Eve
                || (d == 31 && m == December)
                )
                return false;
        }

        if (y == 2009) {
            if (// Public holiday
                (d == 2 && m == January)
                // Chinese New Year
                || (d == 26 && m == January)
                // Birthday of the prophet Muhammad SAW
                || (d == 9 && m == March)
                // Saka's New Year
                || (d == 26 && m == March)
                // National leave
                || (d == 9 && m == April)
                // Isra' Mi'raj of the prophet Muhammad SAW
                || (d == 20 && m == July)
                // Ied Fitr
                || (d >= 18 && d <= 23 && m == September)
                // Ied Adha
                || (d == 27 && m == November)
                // Islamic New Year
                || (d == 18 && m == December)
                // Public Holiday
                || (d == 24 && m == December)
                // Trading holiday
                || (d == 31 && m == December)
                )
                return false;
        }

        if (y == 2010) {
            if (// Birthday of the prophet Muhammad SAW
                   (d == 26 && m == February)
                // Saka's New Year
                || (d == 16 && m == March)
                // Birth of Buddha
                || (d == 28 && m == May)
                // Ied Fitr
                || (d >= 8 && d <= 14 && m == September)
                // Ied Adha
                || (d == 17 && m == November)
                // Islamic New Year
                || (d == 7 && m == December)
                // Public Holiday
                || (d == 24 && m == December)
                // Trading holiday
                || (d == 31 && m == December)
                )
                return false;
        }

        if (y == 2011) {
            if (// Chinese New Year
                   (d == 3 && m == February)
                // Birthday of the prophet Muhammad SAW
                || (d == 15 && m == February)
                // Birth of Buddha
                || (d == 17 && m == May)
                // Isra' Mi'raj of the prophet Muhammad SAW
                || (d == 29 && m == June)
                // Ied Fitr
                || (d >= 29 && m == August)
                || (d <= 2 && m == September)
                // Public Holiday
                || (d == 26 && m == December)
                )
                return false;
        }

        if (y == 2012) {
            if (// Chinese New Year
                (d == 23 && m == January)
                // Saka New Year
                || (d == 23 && m == March)
                // Ied ul-Fitr
                || (d >= 20 && d <= 22 && m == August)
                // Eid ul-Adha
                || (d == 26 && m == October)
                // Islamic New Year
                || (d >= 15 && d <= 16 && m == November)
                // Public Holiday
                || (d == 24 && m == December)
                // Trading Holiday
                || (d == 31 && m == December)
                )
                return false;
        }

        if (y == 2013) {
            if (// Birthday of the prophet Muhammad SAW
                (d == 24 && m == January)
                // Saka New Year
                || (d == 12 && m == March)
                // Isra' Mi'raj of the prophet Muhammad SAW
                || (d == 6 && m == June)
                // Ied ul-Fitr
                || (d >= 5 && d <= 9 && m == August)
                // Eid ul-Adha
                || (d >= 14 && d <= 15 && m == October)
                // Islamic New Year
                || (d == 5 && m == November)
                // Public Holiday
                || (d == 26 && m == December)
                // Trading Holiday
                || (d == 31 && m == December)
                )
                return false;
        }

        if (y == 2014) {
            if (// Birthday of the prophet Muhammad SAW
                (d == 14 && m == January)
                // Chinese New Year
                || (d == 31 && m == January)
                // Saka New Year
                || (d == 31 && m == March)
                // Labour Day
                || (d == 1 && m == May)
                // Birth of Buddha
                || (d == 15 && m == May)
                // Isra' Mi'raj of the prophet Muhammad SAW
                || (d == 27 && m == May)
                // Ascension Day of Jesus Christ
                || (d == 29 && m == May)
                // Ied ul-Fitr
                || ((d >= 28 && m == July) || (d == 1 && m == August))
                // Public Holiday
                || (d == 26 && m == December)
                // Trading Holiday
                || (d == 31 && m == December)
                )
                return false;
        }

        return true;
    }
Exemple #23
0
    bool SouthKorea::SettlementImpl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            // Independence Day
            || (d == 1 && m == March)
            // Arbour Day
            || (d == 5 && m == April && y <= 2005)
            // Labour Day
            || (d == 1 && m == May)
            // Children's Day
            || (d == 5 && m == May)
            // Memorial Day
            || (d == 6 && m == June)
            // Constitution Day
            || (d == 17 && m == July && y <= 2007)
            // Liberation Day
            || (d == 15 && m == August)
            // National Foundation Day
            || (d == 3 && m == October)
            // Christmas Day
            || (d == 25 && m == December)

            // Lunar New Year
            || ((d == 21 || d == 22 || d == 23) && m == January  && y == 2004)
            || ((d ==  8 || d ==  9 || d == 10) && m == February && y == 2005)
            || ((d == 28 || d == 29 || d == 30) && m == January  && y == 2006)
            || ( d == 19                        && m == February && y == 2007)
            || ((d ==  6 || d ==  7 || d ==  8) && m == February && y == 2008)
            || ((d == 25 || d == 26 || d == 27) && m == January  && y == 2009)
            || ((d == 13 || d == 14 || d == 15) && m == February && y == 2010)
            || ((d ==  2 || d ==  3 || d ==  4) && m == February && y == 2011)
            || ((d == 23 || d == 24)            && m == January  && y == 2012)
            || ( d == 11                        && m == February && y == 2013)
            || ((d == 30 || d == 31)            && m == January  && y == 2014)
            || ((d == 18 || d == 19 || d == 20) && m == February && y == 2015)
            || ((d >=  7 && d <= 10)            && m == February && y == 2016)
            || ((d == 27 || d == 28 || d == 29) && m == January  && y == 2017)
            || ((d == 15 || d == 16 || d == 17) && m == February && y == 2018)
            || ((d ==  4 || d ==  5 || d ==  6) && m == February && y == 2019)
            || ((d == 24 || d == 25 || d == 26) && m == January  && y == 2020)
            || ((d == 11 || d == 12 || d == 13) && m == February && y == 2021)
            || (((d == 31 && m == January) || ((d == 1 || d == 2)
                                              && m == February)) && y == 2022)
            || ((d == 21 || d == 22 || d == 23) && m == January  && y == 2023)
            || ((d ==  9 || d == 10 || d == 11) && m == February && y == 2024)
            || ((d == 28 || d == 29 || d == 30) && m == January  && y == 2025)
            || ((d == 28 || d == 29 || d == 30) && m == January  && y == 2025)
            || ((d == 16 || d == 17 || d == 18) && m == February && y == 2026)
            || ((d ==  5 || d ==  6 || d ==  7) && m == February && y == 2027)
            || ((d == 25 || d == 26 || d == 27) && m == January  && y == 2028)
            || ((d == 12 || d == 13 || d == 14) && m == February && y == 2029)
            || ((d ==  2 || d ==  3 || d ==  4) && m == February && y == 2030)
            || ((d == 22 || d == 23 || d == 24) && m == January  && y == 2031)
            || ((d == 10 || d == 11 || d == 12) && m == February && y == 2032)

            // Election Days
            || (d == 15 && m == April    && y == 2004) // National Assembly
            || (d == 31 && m == May      && y == 2006) // Regional election
            || (d == 19 && m == December && y == 2007) // Presidency
            || (d ==  9 && m == April    && y == 2008) // National Assembly
            || (d ==  2 && m == June     && y == 2010) // Local election
            || (d == 11 && m == April    && y == 2012) // National Assembly
            || (d == 19 && m == December && y == 2012) // Presidency
            || (d ==  4 && m == June     && y == 2014) // Local election
            || (d == 13 && m == April    && y == 2016) // National Assembly
            // Buddha's birthday
            || (d == 26 && m == May   && y == 2004)
            || (d == 15 && m == May   && y == 2005)
            || (d ==  5 && m == May   && y == 2006)
            || (d == 24 && m == May   && y == 2007)
            || (d == 12 && m == May   && y == 2008)
            || (d ==  2 && m == May   && y == 2009)
            || (d == 21 && m == May   && y == 2010)
            || (d == 10 && m == May   && y == 2011)
            || (d == 28 && m == May   && y == 2012)
            || (d == 17 && m == May   && y == 2013)
            || (d ==  6 && m == May   && y == 2014)
            || (d == 25 && m == May   && y == 2015)
            || (d == 14 && m == May   && y == 2016)
            || (d ==  3 && m == May   && y == 2017)
            || (d == 22 && m == May   && y == 2018)
            || (d == 12 && m == May   && y == 2019)
            || (d == 30 && m == April && y == 2020)
            || (d == 19 && m == May   && y == 2021)
            || (d ==  8 && m == May   && y == 2022)
            || (d == 26 && m == May   && y == 2023)
            || (d == 15 && m == May   && y == 2024)
            || (d ==  5 && m == May   && y == 2025)
            || (d == 24 && m == May   && y == 2026)
            || (d == 13 && m == May   && y == 2027)
            || (d ==  2 && m == May   && y == 2028)
            || (d == 20 && m == May   && y == 2029)
            || (d ==  9 && m == May   && y == 2030)
            || (d == 28 && m == May   && y == 2031)
            || (d == 16 && m == May   && y == 2032)

            // Special holiday: 70 years from Independence Day
            || (d == 14 && m == August && y == 2015)

            // Harvest Moon Day
            || ((d == 27 || d == 28 || d == 29) && m == September && y == 2004)
            || ((d == 17 || d == 18 || d == 19) && m == September && y == 2005)
            || ((d ==  5 || d ==  6 || d ==  7) && m == October   && y == 2006)
            || ((d == 24 || d == 25 || d == 26) && m == September && y == 2007)
            || ((d == 13 || d == 14 || d == 15) && m == September && y == 2008)
            || ((d ==  2 || d ==  3 || d ==  4) && m == October   && y == 2009)
            || ((d == 21 || d == 22 || d == 23) && m == September && y == 2010)
            || ((d == 12 || d == 13)            && m == September && y == 2011)
            || ((d == 1)                        && m == October   && y == 2012)
            || ((d == 18 || d == 19 || d == 20) && m == September && y == 2013)
            || ((d ==  8 || d ==  9 || d == 10) && m == September && y == 2014)
            || ((d == 28 || d == 29)            && m == September && y == 2015)
            || ((d == 14 || d == 15 || d == 16) && m == September && y == 2016)
            || ((d ==  3 || d ==  4 || d ==  5) && m == October   && y == 2017)
            || ((d == 23 || d == 24 || d == 25) && m == September && y == 2018)
            || ((d == 12 || d == 13 || d == 14) && m == September && y == 2019)
            || (((d == 30 && m == September) || ((d == 1 || d == 2) 
                                                && m == October)) && y == 2020)
            || ((d == 20 || d == 21 || d == 22) && m == September && y == 2021)
            || ((d ==  9 || d == 10 || d == 11) && m == September && y == 2022)
            || ((d == 28 || d == 29 || d == 30) && m == September && y == 2023)
            || ((d == 16 || d == 17 || d == 18) && m == September && y == 2024)
            || ((d ==  5 || d ==  6 || d ==  7) && m == October   && y == 2025)
            || ((d == 24 || d == 25 || d == 26) && m == September && y == 2026)
            || ((d == 14 || d == 15 || d == 16) && m == September && y == 2027)
            || ((d ==  2 || d ==  3 || d ==  4) && m == October   && y == 2028)
            || ((d == 21 || d == 22 || d == 23) && m == September && y == 2029)
            || ((d == 11 || d == 12 || d == 13) && m == September && y == 2030)
            || (((d == 30 && m == September) || ((d == 1 || d == 2)
                                                && m == October)) && y == 2031)
            || ((d == 18 || d == 19 || d == 20) && m == September && y == 2032)
            // Hangul Proclamation of Korea
            || (d == 9 && m == October && y >= 2013)
            )
            return false;

        return true;
    }
Exemple #24
0
    bool Turkey::Impl::isBusinessDay(const Date& date) const {
        Weekday w = date.weekday();
        Day d = date.dayOfMonth();
        Month m = date.month();
        Year y = date.year();

        if (isWeekend(w)
            // New Year's Day
            || (d == 1 && m == January)
            // 23 nisan / National Holiday
            || (d == 23 && m == April)
            // 19 may/ National Holiday
            || (d == 19 && m == May)
            // 30 aug/ National Holiday
            || (d == 30 && m == August)
            ///29 ekim  National Holiday
            || (d == 29 && m == October))
            return false;

        // Local Holidays
        if (y == 2004) {
            // Kurban
            if ((m == February && d <= 4)
            // Ramadan
                || (m == November && d >= 14 && d <= 16))
                return false;
        } else if (y == 2005) {
            // Kurban
            if ((m == January && d >= 19 && d <= 21)
            // Ramadan
                || (m == November && d >= 2 && d <= 5))
                return false;
        } else if (y == 2006) {
            // Kurban
            if ((m == January && d >= 10 && d <= 13)
            // Ramadan
                || (m == October && d >= 23 && d <= 25)
            // Kurban
                || (m == December && d == 31))
                return false;
        } else if (y == 2007) {
            // Kurban
            if ((m == January && d <= 3)
            // Ramadan
                || (m == October && d >= 12 && d <= 14)
            // Kurban
                || (m == December && d >= 20 && d <= 23))
                return false;
        } else if (y == 2008) {
            // Ramadan
            if ((m == September && d == 30)
                || (m == October && d <= 2)
            // Kurban
                || (m == December && d >= 8 && d <= 11))
                return false;
        } else if (y == 2009) {
            // Ramadan
            if ((m == September && d >= 20 && d <= 22)
            // Kurban
                || (m == November && d >= 27 && d <= 30))
                return false;
        } else if (y == 2010) {
            // Ramadan
            if ((m == September && d >= 9 && d <= 11)
            // Kurban
                || (m == November && d >= 16 && d <= 19))
                return false;
        } else if (y == 2011) {
            // not clear from borsainstanbul.com
            if ((m == October && d == 1)
                || (m == November && d >= 9 && d <= 13))
                return false;
        } else if (y == 2012) {
            // Ramadan
            if ((m == August && d >= 18 && d <= 21)
            // Kurban
                || (m == October && d >= 24 && d <= 28))
                return false;
        } else if (y == 2013) {
            // Ramadan
            if ((m == August && d >= 7 && d <= 10)
            // Kurban
                || (m == October && d >= 14 && d <= 18)
            // additional holiday for Republic Day
                || (m == October && d == 28))
                return false;
        }
        return true;
    }