There are generally 11 public holidays a year; however, since the gap between the Islamic calendar and the Gregorian calendar lasts around 11 days, Hari Raya Aidil Fitri and Hari Raya Aidil Adha are respectively celebrated twice in a Gregorian calendar year every 32 or 33 years. This occurred in 1968 and 2000 for Hari Raya Puasa as well as 1974 and 2006 for Hari Raya Haji, giving Singaporeans 12 public holidays in those years, not 13 since they are not close enough to be both celebrated twice in the same Gregorian year, only either one of the two. 
The list of all the holidays are as follows (listed in alphabetical order):
Under the Holiday's Act, should a Public Holiday falls on a Sunday, the following day on Monday would be gazetted as a public holiday (also called holiday-in-lieu). There are however, special occasions, that may be gazetted by the President of Singapore to declare any day to be observed as a public holiday by modifying any days specified in the schedule to the Holidays' Act and if any, another day to be observed as an additional public holiday when in that year two public holidays fall on the same day.  One such occasion occurred during the 2015's National Day, whereas an additional day of August 7 was gazetted as a public holiday in addition to August 10 being the holiday-in-lieu.
If any public holiday falls on a Saturday in Singapore, the following Monday is declared as a school holiday for students in primary & secondary schools, only if that Monday is not a public holiday itself.
Under Section 35 of the Parliamentary Elections Act and Section 17 of the Presidential Elections Act, Polling Day for a general election or a presidential election (but not By-elections) is a public holiday that is gazetted by the Returning Officer from the Elections Department Singapore. Under the Employment Act, employees not required to work on that day are entitled to one day off in lieu or be given one day's pay. 
Up to and including 1968, these few were also gazetted as public holidays but were removed to improve business competitiveness.
It is legal for employers to agree to give their employees other holidays in substitution for one or more public holidays.  No act or thing relating to any government department or public authority, any judicial proceeding, any transaction, instrument or any other act or thing is rendered invalid where it is done or executed on a Sunday or public holiday. 
Under the Employment Act,  an employee who is required to work on a public holiday is entitled to an extra day's salary at the basic rate of pay, in addition to the gross rate of pay for that holiday.
The days observed as general public holidays in Singapore are declared in the schedule to the Holidays Act.  According to the Ministry of Manpower, which issues a yearly list of the dates on which public holidays fall, the holidays were "chosen and agreed upon after close consultation with different community and religious leaders in Singapore".  Other factors taken into account were the impact on business costs and statutory leave provided for under the Employment Act.  Thus, some religious holidays such as Easter Monday, Mawlid (the birthday of the Prophet Muhammad), Boxing Day and Thaipusam were removed from the list of public holidays to improve business competitiveness.