CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

astro.swift #284

Open rraphaeldev opened 1 year ago

rraphaeldev commented 1 year ago

En espérant que le Swift soit accepté 🙂

enum AstroError: Error {
    case dateInvalide
}

// Trouve le signe astrologique d'une date au format dd/MM*.
//
// Ajouter d'autres formats de date pourrait impacter les performances...
// En fonction des dates les plus demandées, la liste peut être réorganisée pour optimiser le temps de réponse.
func astro(_ date: String) throws -> String {
    if date.starts(with: "01/01") { return "Capricorne" }
    if date.starts(with: "02/01") { return "Capricorne" }
    if date.starts(with: "03/01") { return "Capricorne" }
    if date.starts(with: "04/01") { return "Capricorne" }
    if date.starts(with: "05/01") { return "Capricorne" }
    if date.starts(with: "06/01") { return "Capricorne" }
    if date.starts(with: "07/01") { return "Capricorne" }
    if date.starts(with: "08/01") { return "Capricorne" }
    if date.starts(with: "09/01") { return "Capricorne" }
    if date.starts(with: "10/01") { return "Capricorne" }
    if date.starts(with: "11/01") { return "Capricorne" }
    if date.starts(with: "12/01") { return "Capricorne" }
    if date.starts(with: "13/01") { return "Capricorne" }
    if date.starts(with: "14/01") { return "Capricorne" }
    if date.starts(with: "15/01") { return "Capricorne" }
    if date.starts(with: "16/01") { return "Capricorne" }
    if date.starts(with: "17/01") { return "Capricorne" }
    if date.starts(with: "18/01") { return "Capricorne" }
    if date.starts(with: "19/01") { return "Capricorne" }
    if date.starts(with: "20/01") { return "Capricorne" }
    if date.starts(with: "21/01") { return "Verseau" }
    if date.starts(with: "22/01") { return "Verseau" }
    if date.starts(with: "23/01") { return "Verseau" }
    if date.starts(with: "24/01") { return "Verseau" }
    if date.starts(with: "25/01") { return "Verseau" }
    if date.starts(with: "26/01") { return "Verseau" }
    if date.starts(with: "27/01") { return "Verseau" }
    if date.starts(with: "28/01") { return "Verseau" }
    if date.starts(with: "29/01") { return "Verseau" }
    if date.starts(with: "30/01") { return "Verseau" }
    if date.starts(with: "31/01") { return "Verseau" }
    if date.starts(with: "01/02") { return "Verseau" }
    if date.starts(with: "02/02") { return "Verseau" }
    if date.starts(with: "03/02") { return "Verseau" }
    if date.starts(with: "04/02") { return "Verseau" }
    if date.starts(with: "05/02") { return "Verseau" }
    if date.starts(with: "06/02") { return "Verseau" }
    if date.starts(with: "07/02") { return "Verseau" }
    if date.starts(with: "08/02") { return "Verseau" }
    if date.starts(with: "09/02") { return "Verseau" }
    if date.starts(with: "10/02") { return "Verseau" }
    if date.starts(with: "11/02") { return "Verseau" }
    if date.starts(with: "12/02") { return "Verseau" }
    if date.starts(with: "13/02") { return "Verseau" }
    if date.starts(with: "14/02") { return "Verseau" }
    if date.starts(with: "15/02") { return "Verseau" }
    if date.starts(with: "16/02") { return "Verseau" }
    if date.starts(with: "17/02") { return "Verseau" }
    if date.starts(with: "18/02") { return "Verseau" }
    if date.starts(with: "19/02") { return "Poissons" }
    if date.starts(with: "20/02") { return "Poissons" }
    if date.starts(with: "21/02") { return "Poissons" }
    if date.starts(with: "22/02") { return "Poissons" }
    if date.starts(with: "23/02") { return "Poissons" }
    if date.starts(with: "24/02") { return "Poissons" }
    if date.starts(with: "25/02") { return "Poissons" }
    if date.starts(with: "26/02") { return "Poissons" }
    if date.starts(with: "27/02") { return "Poissons" }
    if date.starts(with: "28/02") { return "Poissons" }
    if date.starts(with: "29/02") { return "Poissons" }
    if date.starts(with: "01/03") { return "Poissons" }
    if date.starts(with: "02/03") { return "Poissons" }
    if date.starts(with: "03/03") { return "Poissons" }
    if date.starts(with: "04/03") { return "Poissons" }
    if date.starts(with: "05/03") { return "Poissons" }
    if date.starts(with: "06/03") { return "Poissons" }
    if date.starts(with: "07/03") { return "Poissons" }
    if date.starts(with: "08/03") { return "Poissons" }
    if date.starts(with: "09/03") { return "Poissons" }
    if date.starts(with: "10/03") { return "Poissons" }
    if date.starts(with: "11/03") { return "Poissons" }
    if date.starts(with: "12/03") { return "Poissons" }
    if date.starts(with: "13/03") { return "Poissons" }
    if date.starts(with: "14/03") { return "Poissons" }
    if date.starts(with: "15/03") { return "Poissons" }
    if date.starts(with: "16/03") { return "Poissons" }
    if date.starts(with: "17/03") { return "Poissons" }
    if date.starts(with: "18/03") { return "Poissons" }
    if date.starts(with: "19/03") { return "Poissons" }
    if date.starts(with: "20/03") { return "Poissons" }
    if date.starts(with: "21/03") { return "Bélier" }
    if date.starts(with: "22/03") { return "Bélier" }
    if date.starts(with: "23/03") { return "Bélier" }
    if date.starts(with: "24/03") { return "Bélier" }
    if date.starts(with: "25/03") { return "Bélier" }
    if date.starts(with: "26/03") { return "Bélier" }
    if date.starts(with: "27/03") { return "Bélier" }
    if date.starts(with: "28/03") { return "Bélier" }
    if date.starts(with: "29/03") { return "Bélier" }
    if date.starts(with: "30/03") { return "Bélier" }
    if date.starts(with: "31/03") { return "Bélier" }
    if date.starts(with: "01/04") { return "Bélier" }
    if date.starts(with: "02/04") { return "Bélier" }
    if date.starts(with: "03/04") { return "Bélier" }
    if date.starts(with: "04/04") { return "Bélier" }
    if date.starts(with: "05/04") { return "Bélier" }
    if date.starts(with: "06/04") { return "Bélier" }
    if date.starts(with: "07/04") { return "Bélier" }
    if date.starts(with: "08/04") { return "Bélier" }
    if date.starts(with: "09/04") { return "Bélier" }
    if date.starts(with: "10/04") { return "Bélier" }
    if date.starts(with: "11/04") { return "Bélier" }
    if date.starts(with: "12/04") { return "Bélier" }
    if date.starts(with: "13/04") { return "Bélier" }
    if date.starts(with: "14/04") { return "Bélier" }
    if date.starts(with: "15/04") { return "Bélier" }
    if date.starts(with: "16/04") { return "Bélier" }
    if date.starts(with: "17/04") { return "Bélier" }
    if date.starts(with: "18/04") { return "Bélier" }
    if date.starts(with: "19/04") { return "Bélier" }
    if date.starts(with: "20/04") { return "Bélier" }
    if date.starts(with: "21/04") { return "Taureau" }
    if date.starts(with: "22/04") { return "Taureau" }
    if date.starts(with: "23/04") { return "Taureau" }
    if date.starts(with: "24/04") { return "Taureau" }
    if date.starts(with: "25/04") { return "Taureau" }
    if date.starts(with: "26/04") { return "Taureau" }
    if date.starts(with: "27/04") { return "Taureau" }
    if date.starts(with: "28/04") { return "Taureau" }
    if date.starts(with: "29/04") { return "Taureau" }
    if date.starts(with: "30/04") { return "Taureau" }
    if date.starts(with: "01/05") { return "Taureau" }
    if date.starts(with: "02/05") { return "Taureau" }
    if date.starts(with: "03/05") { return "Taureau" }
    if date.starts(with: "04/05") { return "Taureau" }
    if date.starts(with: "05/05") { return "Taureau" }
    if date.starts(with: "06/05") { return "Taureau" }
    if date.starts(with: "07/05") { return "Taureau" }
    if date.starts(with: "08/05") { return "Taureau" }
    if date.starts(with: "09/05") { return "Taureau" }
    if date.starts(with: "10/05") { return "Taureau" }
    if date.starts(with: "11/05") { return "Taureau" }
    if date.starts(with: "12/05") { return "Taureau" }
    if date.starts(with: "13/05") { return "Taureau" }
    if date.starts(with: "14/05") { return "Taureau" }
    if date.starts(with: "15/05") { return "Taureau" }
    if date.starts(with: "16/05") { return "Taureau" }
    if date.starts(with: "17/05") { return "Taureau" }
    if date.starts(with: "18/05") { return "Taureau" }
    if date.starts(with: "19/05") { return "Taureau" }
    if date.starts(with: "20/05") { return "Taureau" }
    if date.starts(with: "21/05") { return "Gémeaux" }
    if date.starts(with: "22/05") { return "Gémeaux" }
    if date.starts(with: "23/05") { return "Gémeaux" }
    if date.starts(with: "24/05") { return "Gémeaux" }
    if date.starts(with: "25/05") { return "Gémeaux" }
    if date.starts(with: "26/05") { return "Gémeaux" }
    if date.starts(with: "27/05") { return "Gémeaux" }
    if date.starts(with: "28/05") { return "Gémeaux" }
    if date.starts(with: "29/05") { return "Gémeaux" }
    if date.starts(with: "30/05") { return "Gémeaux" }
    if date.starts(with: "31/05") { return "Gémeaux" }
    if date.starts(with: "01/06") { return "Gémeaux" }
    if date.starts(with: "02/06") { return "Gémeaux" }
    if date.starts(with: "03/06") { return "Gémeaux" }
    if date.starts(with: "04/06") { return "Gémeaux" }
    if date.starts(with: "05/06") { return "Gémeaux" }
    if date.starts(with: "06/06") { return "Gémeaux" }
    if date.starts(with: "07/06") { return "Gémeaux" }
    if date.starts(with: "08/06") { return "Gémeaux" }
    if date.starts(with: "09/06") { return "Gémeaux" }
    if date.starts(with: "10/06") { return "Gémeaux" }
    if date.starts(with: "11/06") { return "Gémeaux" }
    if date.starts(with: "12/06") { return "Gémeaux" }
    if date.starts(with: "13/06") { return "Gémeaux" }
    if date.starts(with: "14/06") { return "Gémeaux" }
    if date.starts(with: "15/06") { return "Gémeaux" }
    if date.starts(with: "16/06") { return "Gémeaux" }
    if date.starts(with: "17/06") { return "Gémeaux" }
    if date.starts(with: "18/06") { return "Gémeaux" }
    if date.starts(with: "19/06") { return "Gémeaux" }
    if date.starts(with: "20/06") { return "Gémeaux" }
    if date.starts(with: "21/06") { return "Gémeaux" }
    if date.starts(with: "22/06") { return "Cancer" }
    if date.starts(with: "23/06") { return "Cancer" }
    if date.starts(with: "24/06") { return "Cancer" }
    if date.starts(with: "25/06") { return "Cancer" }
    if date.starts(with: "26/06") { return "Cancer" }
    if date.starts(with: "27/06") { return "Cancer" }
    if date.starts(with: "28/06") { return "Cancer" }
    if date.starts(with: "29/06") { return "Cancer" }
    if date.starts(with: "30/06") { return "Cancer" }
    if date.starts(with: "01/07") { return "Cancer" }
    if date.starts(with: "02/07") { return "Cancer" }
    if date.starts(with: "03/07") { return "Cancer" }
    if date.starts(with: "04/07") { return "Cancer" }
    if date.starts(with: "05/07") { return "Cancer" }
    if date.starts(with: "06/07") { return "Cancer" }
    if date.starts(with: "07/07") { return "Cancer" }
    if date.starts(with: "08/07") { return "Cancer" }
    if date.starts(with: "09/07") { return "Cancer" }
    if date.starts(with: "10/07") { return "Cancer" }
    if date.starts(with: "11/07") { return "Cancer" }
    if date.starts(with: "12/07") { return "Cancer" }
    if date.starts(with: "13/07") { return "Cancer" }
    if date.starts(with: "14/07") { return "Cancer" }
    if date.starts(with: "15/07") { return "Cancer" }
    if date.starts(with: "16/07") { return "Cancer" }
    if date.starts(with: "17/07") { return "Cancer" }
    if date.starts(with: "18/07") { return "Cancer" }
    if date.starts(with: "19/07") { return "Cancer" }
    if date.starts(with: "20/07") { return "Cancer" }
    if date.starts(with: "21/07") { return "Cancer" }
    if date.starts(with: "22/07") { return "Cancer" }
    if date.starts(with: "23/07") { return "Lion" }
    if date.starts(with: "24/07") { return "Lion" }
    if date.starts(with: "25/07") { return "Lion" }
    if date.starts(with: "26/07") { return "Lion" }
    if date.starts(with: "27/07") { return "Lion" }
    if date.starts(with: "28/07") { return "Lion" }
    if date.starts(with: "29/07") { return "Lion" }
    if date.starts(with: "30/07") { return "Lion" }
    if date.starts(with: "31/07") { return "Lion" }
    if date.starts(with: "01/08") { return "Lion" }
    if date.starts(with: "02/08") { return "Lion" }
    if date.starts(with: "03/08") { return "Lion" }
    if date.starts(with: "04/08") { return "Lion" }
    if date.starts(with: "05/08") { return "Lion" }
    if date.starts(with: "06/08") { return "Lion" }
    if date.starts(with: "07/08") { return "Lion" }
    if date.starts(with: "08/08") { return "Lion" }
    if date.starts(with: "09/08") { return "Lion" }
    if date.starts(with: "10/08") { return "Lion" }
    if date.starts(with: "11/08") { return "Lion" }
    if date.starts(with: "12/08") { return "Lion" }
    if date.starts(with: "13/08") { return "Lion" }
    if date.starts(with: "14/08") { return "Lion" }
    if date.starts(with: "15/08") { return "Lion" }
    if date.starts(with: "16/08") { return "Lion" }
    if date.starts(with: "17/08") { return "Lion" }
    if date.starts(with: "18/08") { return "Lion" }
    if date.starts(with: "19/08") { return "Lion" }
    if date.starts(with: "20/08") { return "Lion" }
    if date.starts(with: "21/08") { return "Lion" }
    if date.starts(with: "22/08") { return "Lion" }
    if date.starts(with: "23/08") { return "Vierge" }
    if date.starts(with: "24/08") { return "Vierge" }
    if date.starts(with: "25/08") { return "Vierge" }
    if date.starts(with: "26/08") { return "Vierge" }
    if date.starts(with: "27/08") { return "Vierge" }
    if date.starts(with: "28/08") { return "Vierge" }
    if date.starts(with: "29/08") { return "Vierge" }
    if date.starts(with: "30/08") { return "Vierge" }
    if date.starts(with: "31/08") { return "Vierge" }
    if date.starts(with: "01/09") { return "Vierge" }
    if date.starts(with: "02/09") { return "Vierge" }
    if date.starts(with: "03/09") { return "Vierge" }
    if date.starts(with: "04/09") { return "Vierge" }
    if date.starts(with: "05/09") { return "Vierge" }
    if date.starts(with: "06/09") { return "Vierge" }
    if date.starts(with: "07/09") { return "Vierge" }
    if date.starts(with: "08/09") { return "Vierge" }
    if date.starts(with: "09/09") { return "Vierge" }
    if date.starts(with: "10/09") { return "Vierge" }
    if date.starts(with: "11/09") { return "Vierge" }
    if date.starts(with: "12/09") { return "Vierge" }
    if date.starts(with: "13/09") { return "Vierge" }
    if date.starts(with: "14/09") { return "Vierge" }
    if date.starts(with: "15/09") { return "Vierge" }
    if date.starts(with: "16/09") { return "Vierge" }
    if date.starts(with: "17/09") { return "Vierge" }
    if date.starts(with: "18/09") { return "Vierge" }
    if date.starts(with: "19/09") { return "Vierge" }
    if date.starts(with: "20/09") { return "Vierge" }
    if date.starts(with: "21/09") { return "Vierge" }
    if date.starts(with: "22/09") { return "Vierge" }
    if date.starts(with: "23/09") { return "Balance" }
    if date.starts(with: "24/09") { return "Balance" }
    if date.starts(with: "25/09") { return "Balance" }
    if date.starts(with: "26/09") { return "Balance" }
    if date.starts(with: "27/09") { return "Balance" }
    if date.starts(with: "28/09") { return "Balance" }
    if date.starts(with: "29/09") { return "Balance" }
    if date.starts(with: "30/09") { return "Balance" }
    if date.starts(with: "01/10") { return "Balance" }
    if date.starts(with: "02/10") { return "Balance" }
    if date.starts(with: "03/10") { return "Balance" }
    if date.starts(with: "04/10") { return "Balance" }
    if date.starts(with: "05/10") { return "Balance" }
    if date.starts(with: "06/10") { return "Balance" }
    if date.starts(with: "07/10") { return "Balance" }
    if date.starts(with: "08/10") { return "Balance" }
    if date.starts(with: "09/10") { return "Balance" }
    if date.starts(with: "10/10") { return "Balance" }
    if date.starts(with: "11/10") { return "Balance" }
    if date.starts(with: "12/10") { return "Balance" }
    if date.starts(with: "13/10") { return "Balance" }
    if date.starts(with: "14/10") { return "Balance" }
    if date.starts(with: "15/10") { return "Balance" }
    if date.starts(with: "16/10") { return "Balance" }
    if date.starts(with: "17/10") { return "Balance" }
    if date.starts(with: "18/10") { return "Balance" }
    if date.starts(with: "19/10") { return "Balance" }
    if date.starts(with: "20/10") { return "Balance" }
    if date.starts(with: "21/10") { return "Balance" }
    if date.starts(with: "22/10") { return "Balance" }
    if date.starts(with: "23/10") { return "Scorpion" }
    if date.starts(with: "24/10") { return "Scorpion" }
    if date.starts(with: "25/10") { return "Scorpion" }
    if date.starts(with: "26/10") { return "Scorpion" }
    if date.starts(with: "27/10") { return "Scorpion" }
    if date.starts(with: "28/10") { return "Scorpion" }
    if date.starts(with: "29/10") { return "Scorpion" }
    if date.starts(with: "30/10") { return "Scorpion" }
    if date.starts(with: "31/10") { return "Scorpion" }
    if date.starts(with: "01/11") { return "Scorpion" }
    if date.starts(with: "02/11") { return "Scorpion" }
    if date.starts(with: "03/11") { return "Scorpion" }
    if date.starts(with: "04/11") { return "Scorpion" }
    if date.starts(with: "05/11") { return "Scorpion" }
    if date.starts(with: "06/11") { return "Scorpion" }
    if date.starts(with: "07/11") { return "Scorpion" }
    if date.starts(with: "08/11") { return "Scorpion" }
    if date.starts(with: "09/11") { return "Scorpion" }
    if date.starts(with: "10/11") { return "Scorpion" }
    if date.starts(with: "11/11") { return "Scorpion" }
    if date.starts(with: "12/11") { return "Scorpion" }
    if date.starts(with: "13/11") { return "Scorpion" }
    if date.starts(with: "14/11") { return "Scorpion" }
    if date.starts(with: "15/11") { return "Scorpion" }
    if date.starts(with: "16/11") { return "Scorpion" }
    if date.starts(with: "17/11") { return "Scorpion" }
    if date.starts(with: "18/11") { return "Scorpion" }
    if date.starts(with: "19/11") { return "Scorpion" }
    if date.starts(with: "20/11") { return "Scorpion" }
    if date.starts(with: "21/11") { return "Scorpion" }
    if date.starts(with: "22/11") { return "Scorpion" }
    if date.starts(with: "23/11") { return "Sagittaire" }
    if date.starts(with: "24/11") { return "Sagittaire" }
    if date.starts(with: "25/11") { return "Sagittaire" }
    if date.starts(with: "26/11") { return "Sagittaire" }
    if date.starts(with: "27/11") { return "Sagittaire" }
    if date.starts(with: "28/11") { return "Sagittaire" }
    if date.starts(with: "29/11") { return "Sagittaire" }
    if date.starts(with: "30/11") { return "Sagittaire" }
    if date.starts(with: "01/12") { return "Sagittaire" }
    if date.starts(with: "02/12") { return "Sagittaire" }
    if date.starts(with: "03/12") { return "Sagittaire" }
    if date.starts(with: "04/12") { return "Sagittaire" }
    if date.starts(with: "05/12") { return "Sagittaire" }
    if date.starts(with: "06/12") { return "Sagittaire" }
    if date.starts(with: "07/12") { return "Sagittaire" }
    if date.starts(with: "08/12") { return "Sagittaire" }
    if date.starts(with: "09/12") { return "Sagittaire" }
    if date.starts(with: "10/12") { return "Sagittaire" }
    if date.starts(with: "11/12") { return "Sagittaire" }
    if date.starts(with: "12/12") { return "Sagittaire" }
    if date.starts(with: "13/12") { return "Sagittaire" }
    if date.starts(with: "14/12") { return "Sagittaire" }
    if date.starts(with: "15/12") { return "Sagittaire" }
    if date.starts(with: "16/12") { return "Sagittaire" }
    if date.starts(with: "17/12") { return "Sagittaire" }
    if date.starts(with: "18/12") { return "Sagittaire" }
    if date.starts(with: "19/12") { return "Sagittaire" }
    if date.starts(with: "20/12") { return "Sagittaire" }
    if date.starts(with: "21/12") { return "Sagittaire" }
    if date.starts(with: "22/12") { return "Capricorne" }
    if date.starts(with: "23/12") { return "Capricorne" }
    if date.starts(with: "24/12") { return "Capricorne" }
    if date.starts(with: "25/12") { return "Capricorne" }
    if date.starts(with: "26/12") { return "Capricorne" }
    if date.starts(with: "27/12") { return "Capricorne" }
    if date.starts(with: "28/12") { return "Capricorne" }
    if date.starts(with: "29/12") { return "Capricorne" }
    if date.starts(with: "30/12") { return "Capricorne" }
    if date.starts(with: "31/12") { return "Capricorne" }

    throw AstroError.dateInvalide
}