Итак, для школьного проекта я пытаюсь составить программу, которая рассчитывает ваш возраст в месяцах в зависимости от вашей даты рождения. Я пишу это на C++. Пожалуйста, не обращайте внимания на использование ненужного/дополнительного кода, поскольку я все еще участвую. Обратите внимание: имена переменных и примечания указаны в Dutch. При использовании, например, 9/6/1996 в качестве даты рождения программа работает нормально, но когда я использую 9/6/1969, она возвращает 30, другими словами, она не работает , и проблема, похоже, связана с годом. Любые идеи о том, как это решить? Заранее спасибо. Мой код:Ваш возраст в месяцах в зависимости от вашей даты рождения
#include <iostream>
using namespace std;
int main() {
int huidigJaar = 2014;
int huidigeMaand = 8;
int huidigeDag = 19;
int geboorteJaar = 1;
int geboorteMaand = 1;
int geboorteDag = 1;
int totaalMaanden = 1;
cout << "Wat is je geboortejaar?";
cin >> geboorteJaar;
cout << "Wat is je geboortemaand?";
cin >> geboorteMaand;
cout << "Wat is je geboortedag?";
cin >> geboorteDag;
int verschilJaar = huidigJaar - geboorteJaar - 1; // niet iedereen is al jarig geweest
//kijken of het jaar erbij mag en totaal aantal maanden uitrekenen
if (geboorteMaand < huidigeMaand) { //de persoon is dit jaar al jarig geweest
verschilJaar = verschilJaar + 1;
if (geboorteDag <= huidigeDag) {
totaalMaanden = verschilJaar * 12 + (huidigeMaand - geboorteMaand); //de huidige maand komt erbij
}else {
totaalMaanden = verschilJaar * 12 + (huidigeMaand - geboorteMaand) - 1; //de huidige maand gaat eraf
}
}else if (geboorteMaand == huidigeMaand) {
if (geboorteDag <= huidigeDag) {
verschilJaar = verschilJaar + 1;
totaalMaanden = verschilJaar * 12; //heel jaar
}else {
totaalMaanden = verschilJaar * 12 + 11; //er komt niet een heel jaar bij maar wel 11 maanden, omdat de huidige maand niet meetelt
}
}else {
if (geboorteDag <= huidigeDag) {
totaalMaanden = verschilJaar * 12 + huidigeMaand + (12 - geboorteMaand); //de persoon moet nog jarig worden, dus geen jaar erbij maar wel de maanden na zijn verjaardag
}else {
totaalMaanden = verschilJaar * 12 + huidigeMaand + (12 - geboorteMaand) - 1; //zelfde maar dan een maand eraf omdat deze maand niet als een maand gerekend kan worden
}
}
return totaalMaanden;
}//main
Напишите свой расчет на листе бумаги и воспроизведите его на вашем языке программирования. – specializt
Вы можете использовать 'std :: chrono' для своего школьного проекта? –
Попросите вашего инструктора продемонстрировать использование отладчика. С помощью отладчика вы можете видеть, что переменные изменяются и выполняют оператор программы по инструкции. Очень полезно, особенно в таких случаях. –