#include <iostream>
#include <ctime>
using namespace std;
int calculateAge(int birthYear, int birthMonth, int birthDay) {
// Get current date
time_t t = time(nullptr);
tm* now = localtime(&t);
int currentYear = now->tm_year + 1900;
int currentMonth = now->tm_mon + 1;
int currentDay = now->tm_mday;
// Calculate age
int age = currentYear - birthYear;
// Adjust for whether birthday has occurred this year
if (currentMonth < birthMonth || (currentMonth == birthMonth && currentDay < birthDay)) {
age--;
}
return age;
}
int main() {
int birthYear, birthMonth, birthDay;
cout << "Enter your birth year: ";
cin >> birthYear;
cout << "Enter your birth month (1-12): ";
cin >> birthMonth;
cout << "Enter your birth day: ";
cin >> birthDay;
int age = calculateAge(birthYear, birthMonth, birthDay);
cout << "Your age is: " << age << " years old." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3RpbWU+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGNhbGN1bGF0ZUFnZShpbnQgYmlydGhZZWFyLCBpbnQgYmlydGhNb250aCwgaW50IGJpcnRoRGF5KSB7CiAgICAvLyBHZXQgY3VycmVudCBkYXRlCiAgICB0aW1lX3QgdCA9IHRpbWUobnVsbHB0cik7CiAgICB0bSogbm93ID0gbG9jYWx0aW1lKCZ0KTsKCiAgICBpbnQgY3VycmVudFllYXIgPSBub3ctPnRtX3llYXIgKyAxOTAwOwogICAgaW50IGN1cnJlbnRNb250aCA9IG5vdy0+dG1fbW9uICsgMTsKICAgIGludCBjdXJyZW50RGF5ID0gbm93LT50bV9tZGF5OwoKICAgIC8vIENhbGN1bGF0ZSBhZ2UKICAgIGludCBhZ2UgPSBjdXJyZW50WWVhciAtIGJpcnRoWWVhcjsKCiAgICAvLyBBZGp1c3QgZm9yIHdoZXRoZXIgYmlydGhkYXkgaGFzIG9jY3VycmVkIHRoaXMgeWVhcgogICAgaWYgKGN1cnJlbnRNb250aCA8IGJpcnRoTW9udGggfHwgKGN1cnJlbnRNb250aCA9PSBiaXJ0aE1vbnRoICYmIGN1cnJlbnREYXkgPCBiaXJ0aERheSkpIHsKICAgICAgICBhZ2UtLTsKICAgIH0KCiAgICByZXR1cm4gYWdlOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBiaXJ0aFllYXIsIGJpcnRoTW9udGgsIGJpcnRoRGF5OwoKICAgIGNvdXQgPDwgIkVudGVyIHlvdXIgYmlydGggeWVhcjogIjsKICAgIGNpbiA+PiBiaXJ0aFllYXI7CiAgICBjb3V0IDw8ICJFbnRlciB5b3VyIGJpcnRoIG1vbnRoICgxLTEyKTogIjsKICAgIGNpbiA+PiBiaXJ0aE1vbnRoOwogICAgY291dCA8PCAiRW50ZXIgeW91ciBiaXJ0aCBkYXk6ICI7CiAgICBjaW4gPj4gYmlydGhEYXk7CgogICAgaW50IGFnZSA9IGNhbGN1bGF0ZUFnZShiaXJ0aFllYXIsIGJpcnRoTW9udGgsIGJpcnRoRGF5KTsKCiAgICBjb3V0IDw8ICJZb3VyIGFnZSBpczogIiA8PCBhZ2UgPDwgIiB5ZWFycyBvbGQuIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9