J'utilise le code d'ici: https: //www.geeksforgeeks.org/find-day-of-the-week-for-a-given-date/. Il trouve le jour de la semaine auquel une date tombe. La sortie est un nombre correspondant au jour de la semaine mais je voudrais qu'il dise «Lundi» au lieu de «1». Comment le changer?

#include <iostream>

using namespace std;

int dayofweek(int d, int m, int y)
{
    static int t[] = { 0, 3, 2, 5, 0, 3,
                       5, 1, 4, 6, 2, 4 };
    y -= m < 3;
    return ( y + y / 4 - y / 100 +
             y / 400 + t[m - 1] + d) % 7;
}

int main()
{
    int day = dayofweek(03, 02, 2020);
    cout << day << endl;

    return 0;
}
1
Jennifer Diane Taylor R. 28 août 2020 à 02:48

2 réponses

Meilleure réponse

Ecrivez une méthode qui prend une entrée entière et renvoie une chaîne.

const char* day(int n) 
{
    static const char* days[] = {
        "Monday", "Tuesday", …, "Sunday"
    }
    if (n >= 1 && n <= 7)
        return days[n-1];
    else
        return "Failday";
}

Je suppose ici que dimanche est 7; ajustez en conséquence si c'est 0.

Vous pouvez préférer std :: string à char *; Je vous laisse ce détail.

3
J.Backus 27 août 2020 à 23:54

Il existe de nombreuses façons d'atteindre votre objectif. Une manière (naïve) serait d'écrire une fonction supplémentaire qui ressemble à

std::string to_date_string(int day) {
    switch(day) {
    case 1:
        return "Monday";
    case 2:
        return "Tuesday";
    // TODO: Continue this pattern.
    }
}

Cela nécessite d'inclure l'en-tête string. Ensuite, vous pouvez simplement écrire

std::cout << to_date_string(day) << std::endl;

Comme astuce supplémentaire: essayez de programmer sans using namespace std;. Cette ligne peut être un piège maléfique - surtout pour les débutants.

1
Paulsor 27 août 2020 à 23:55