Поиск даты начала определенного месяца с указанием дня начала года для ежемесячной календарной программы

#c

Вопрос:

Я действительно ломаю голову, чтобы придумать способ найти день начала месяца в рамках моей программы. Я беру базовый C , поэтому мы изучили только основы, такие как операторы switch, if/else/while. Вот к чему я пришел до сих пор. Это грязно, и мне нужно установить оператор переключения, но я просто пытаюсь заставить его работать сейчас. У меня день начала установленного года в пределах 0-6 0 — воскресенье, а 6-суббота. Как бы я нашел это для отдельного месяца

 #include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
char response;
int numdays;

do {
    // Obtaining the month from user 
    int month;
    cout << " enter a month between 1 and 12 inclusive" << endl;
    cin >> month;
    while (month > 12 || month < 1) //error check
    {
        cout << "Month cannot be less than 1 or more than 12," << endl;
        cout << "please enter the month again";
        cin >> month;
    }


    // Obtaining the year from user 
    int year;
    cout << " enter the year for your calandar in numerical fashion" << endl;
    cin >> year;
    while (year < 2000) //error check
    {
        cout << "Year cannot be less than 2000" << endl;
        cout << "please enter the year again";
        cin >> year;
    }



    int firstday, leapyearcheck;
    firstday = ((int)(((year - 1) * 365)   floor((year - 1) / 4) - floor((year - 1) / 100)   
floor((year - 1) / 400))   1) % 7;
    leapyearcheck = (!(year % 4) amp;amp; (year % 100)) || !(year % 400);

    while (month <= 12) {
        if (month == 1) {
            numdays = 31;
            cout << setw(12) << "January" <<setw(20)<<year<< endl; break;
        }
        else if (month == 2) {
            if (leapyearcheck == false) {
                numdays = 28;
            }
            else numdays = 29;
            cout << setw(12) << "February" << setw(20) << year << endl; break;
        }
        else if (month == 3) {
            numdays = 31;
            cout << setw(12) << "March" << setw(20) << year << endl; break;
        }
        else if (month == 4) {
            numdays = 30;
            cout << setw(12) << "April" << setw(20) << year << endl; break;
        }
        else if (month == 5) {
            numdays = 31;
            cout << setw(12) << "May" << setw(20) << year << endl; break;
        }
        else if (month == 6) {
            numdays = 30;
            cout << setw(12) << "June" << setw(20) << year << endl; break;
        }
        else if (month == 7) {
            numdays = 31;
            cout << setw(12) << "July" << setw(20) << year << endl; break;
        }
        else if (month == 8) {
            numdays = 31;
            cout << setw(12) << "August" << setw(20) << year << endl; break;
        }
        else if (month == 9) {
            numdays = 30;
            cout << setw(12) << "September" << setw(20) << year << endl; break;
        }
        else if (month == 10) {
            numdays = 31;
            cout << setw(12) << "October" << setw(20) << year << endl; break;
        }
        else if (month == 11) {
            numdays = 30;
            cout << "November" << setw(20) << year << endl; break;
        }
        else if (month == 12) {
            numdays = 31;
            cout << setw(12) << "December" << setw(20) << year << endl; break;
        }


        


    }


    
    
    
    cout<<"S"<< setw(6) <<"M"<< setw(6) <<"T"<< setw(6) <<"W"<< setw(6) <<"T"<< setw(6)<<"F"<< 
setw(6)<<"S"<< endl;
    cout << "_____________________________________" << endl << endl;

    for (int k = 0; k < firstday; k  ){

        cout << "      ";

    }

    for (int x = 1; x <= numdays; x  ) {
        cout << x << setw(6);
    }
    

        cout << endl << endl << "Would You Like Another Calandar? Y or N " << endl;
        cin >> response;
        cout << endl << endl << endl;
    } while (response == 'Y' || response == 'y');


    return 0;`