~cpp #include <iostream> using namespace std; void judgeYundal(); void calanderoutput(); int addMonth[12] = {0,3,0,3,2,3,2,3,3,2,3,2}; // 1 int lastDayOfMonth[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; int yearInput, monthInput, count = 0, dateNumber = 1 , locationOf1stDay, addm; bool yundal; int main() { cout << " :"; cin >> yearInput; cout << " :"; cin >> monthInput; judgeYundal(); for (int x = 0 ; x < monthInput ; x++) // 1 1 addm += addMonth[x]; if (yundal == true) { locationOf1stDay = (addm + yearInput + count - 1 + 6) % 7; // if ( monthInput > 2 ) locationOf1stDay++; } else { // 각 1 locationOf1stDay = (addm + yearInput + count + 6 ) % 7; // } calanderoutput(); return 0; } void judgeYundal() // { for (int i = 0 ; i <= yearInput ; i++) { if ( i%100 != 0 && i%4 == 0) yundal = true; else if ( i%100 == 0 && i%400 != 0) yundal = false; else if ( i%400 == 0 ) yundal = true; else yundal = false; if (yundal == true) count++; } } void calanderoutput() // { cout << "\t\t" << yearInput << "\t" << monthInput << " \n\n"; cout << "\t\t\t\t\t금\t" << endl; for (int j = 1 ; j<=6 ; j++) { for (int k = 0 ; k <= 6 ; k++) { if ( (j == 1 && k < locationOf1stDay) || dateNumber > lastDayOfMonth[monthInput-1] || (dateNumber == 29 && !yundal) ) { cout << " \t"; } else { cout << dateNumber << "\t"; dateNumber++; } } cout << "\n"; } }