[c++] 날짜의 유효성 검사
#include <iostream>
#include <ctime>

bool isValidDate(int year, int month, int day) {
    if (year < 1900 || year > 2100) {
        return false;  // 유효하지 않은 연도
    }
    if (month < 1 || month > 12) {
        return false;  // 유효하지 않은 월
    }
    if (day < 1 || day > 31) {
        return false;  // 유효하지 않은 일
    }
    // 윤년 여부 검사
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        if (month == 2) {
            if (day > 29) {
                return false;  // 2월의 유효하지 않은 일
            }
        }
    } else {
        if (month == 2) {
            if (day > 28) {
                return false;  // 2월의 유효하지 않은 일
            }
        }
    }
    return true;  // 유효한 날짜
}

int main() {
    int year, month, day;
    std::cout << "년도를 입력하세요: ";
    std::cin >> year;
    std::cout << "월을 입력하세요: ";
    std::cin >> month;
    std::cout << "일을 입력하세요: ";
    std::cin >> day;

    if (isValidDate(year, month, day)) {
        std::cout << "유효한 날짜입니다." << std::endl;
    } else {
        std::cout << "유효하지 않은 날짜입니다." << std::endl;
    }

    return 0;
}

위의 코드는 입력된 년, 월, 일이 유효한 날짜인지를 검사합니다. 사용자로부터 입력을 받아서 isValidDate 함수를 통해 유효성을 판단하고 결과를 출력합니다. 추가로 윤년 여부도 고려하여 2월의 날짜를 검사합니다.

윤년 여부 검사에 대한 추가적인 정보는 이 문서를 참고할 수 있습니다.