Bei dieser Aufgabenstellung sollten die Tage zwischen dem Geburtstag und dem aktuellen Datum ermittelt werden. Zusätzlich sollte die Schaltjahresregel beachtet werden, um einen richtigen Wert zu ermitteln. Anbei der Source Code in C#.
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { Console.WriteLine("Bitte geben Sie Ihr Geburtsdatum im folgendem Format TT.MM.JJJJ ein:"); string strBirthDate = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Bitte geben Sie das heutige Datum ein im Format TT.MM.JJJJ ein:"); string strThisDate = Console.ReadLine(); Console.WriteLine(); try { int[] intArrDaysPerMonth = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int intBirthDays = Convert.ToInt16(strBirthDate.Substring(0, 2)); int intBirthMonth = Convert.ToInt16(strBirthDate.Substring(3, 2)); int intBirthYear = Convert.ToInt16(strBirthDate.Substring(6, 4)); int intBirthDays2 = intBirthDays; int intBirthMonth2 = intBirthMonth; int intBirthYear2 = intBirthYear; int intThisDays = Convert.ToInt16(strThisDate.Substring(0, 2)); int intThisMonth = Convert.ToInt16(strThisDate.Substring(3, 2)); int intThisYear = Convert.ToInt16(strThisDate.Substring(6, 4)); int intThisDays2 = intThisDays; int intThisMonth2 = intThisMonth; int intThisYear2 = intThisYear; int intErgebnisBirth = 0; int k = 0; //Tage im Geburtsjahr for (int i = 1; i < intBirthMonth; i++) { intErgebnisBirth += intArrDaysPerMonth[i]; if(i == 3) { if (isSchaltjahr(intBirthYear)) { k++; } } } intErgebnisBirth += intBirthDays; intErgebnisBirth = 365 + k - intErgebnisBirth; int intErgebnisThis = 0; int j = 1; int h = 0; for (j = 1; j < intThisMonth; j++) { intErgebnisThis += intArrDaysPerMonth[j]; if (j == 3) { if (isSchaltjahr(intBirthYear)) { h++; } } } intErgebnisThis += intThisDays; intBirthYear++; int intTageImJahr = 0; while (intBirthYear < intThisYear) { if (isSchaltjahr(intBirthYear)) { intTageImJahr += 1; } else { intTageImJahr += 0; } intTageImJahr += 365; intBirthYear++; } int intBothYears = intErgebnisThis + intErgebnisBirth + intTageImJahr; if (intThisYear2 == intBirthYear2) { if (isSchaltjahr(intThisYear2)) { intBothYears -= 366; } else { intBothYears -= 365; } } if (intBirthYear2 > intThisYear2) { Console.WriteLine("Das Gebrutsjahr kann nicht größer als das aktuelle Jahr sein."); } else { if (intBirthYear2 == intThisYear2) { if (intBirthMonth2 > intThisMonth2) { Console.WriteLine("Der Geburtsmonat kann nicht größer sein als der aktuelle Monat, wenn sie im gleichen Jahr liegen."); } else { if (intBirthMonth2 == intThisMonth2) { if (intBirthDays2 > intThisDays2) { Console.WriteLine("Der Geburtstag kann nicht größer als der aktuelle Tag sein, wenn der Monat und das Jahr identisch sind."); } else { Console.WriteLine(intBothYears); Console.ReadLine(); } } else { Console.WriteLine(intBothYears); Console.ReadLine(); } } } else { Console.WriteLine(intBothYears); Console.ReadLine(); } } } catch (Exception) { Console.WriteLine("Falsches Format"); } } public static bool isSchaltjahr(int pJahr) { if (pJahr % 4 == 0 || pJahr % 400 == 0 || pJahr % 100 == 0) return true; else return false; } } }
Lebenstage berechnen (Online Version) |
|---|







Seite 1 von 1 1
Soo ... 10187 Tage habe ich schon hinter mir ...