Wann werden wir zusammen 100?

3 Antworten

Die Frage ist eine schöne Anregung für eine Programmierübung. Besten Dank!

Für die Ausführung der Rechnung braucht man neben den 50. Geburtstagen der Jubilare noch den Altersunterschied in Tagen zwischen beiden Personen. Man überlegt sich dann, dass man diesen Unterschied halbiert und den halben Unterschied entweder vom späteren Geburtstag abzieht oder dem früheren Geburtstag hinzuzählt. Der Partner, der die 50 bereits überschritten hat, gibt dem jüngeren Partner also so viele fehlende Tage ab, dass beide auf die 50 Jahre kommen - wie man sich in einer guten Ehe eben aushilft.

In der Programmiersprache C# kann man das so programmieren:

using System;

namespace Example001
{
  class Program
  {
     static void Main(string[] args) {
        System.DateTime aelterePerson
          = new DateTime(1982, 5, 19);
        System.DateTime juengerePerson
          = new DateTime(1985, 10, 4);
        System.TimeSpan differenz
          = aelterePerson - juengerePerson;
        System.TimeSpan halbeDiff
          = TimeSpan.FromDays(differenz.Days / 2);
        Console.WriteLine
          ("Altersunterschied in Tagen: " + differenz.Days);
        Console.WriteLine
          ("50. Geburtstag der älteren Person:  " +
           aelterePerson.AddYears(50).ToShortDateString());
        Console.WriteLine
          ("50. Geburtstag der jüngeren Person: " +
           juengerePerson.AddYears(50).ToShortDateString());
        Console.WriteLine
         ("Rechnung vom Geburtstag der älteren Person vorwärts:   "
          + (aelterePerson.AddYears(50)
               - halbeDiff).ToShortDateString());
        Console.WriteLine
         ("Rechnung vom Geburtstag der jüngeren Person rückwärts: "
          + (juengerePerson.AddYears(50)
               + halbeDiff).ToShortDateString());
     }
  }
}

Die Ausgabe des Programms:

Altersunterschied in Tagen: -1234
50. Geburtstag der älteren Person:  19/05/2032
50. Geburtstag der jüngeren Person: 04/10/2035
Rechnung vom Geburtstag der älteren Person vorwärts:   26/01/2034
Rechnung vom Geburtstag der jüngeren Person rückwärts: 25/01/2034

Die beiden Rechnungen liefern Ergebnisse, dei sich um einen Tag unterscheiden. Das liegt daran, dass in die Zeit zwischen dem 19/05/1982 und dem 04/10/1985 ein Schalttag fällt, wohingegen in die Zeitspanne vom 15/05/2032 bis 04/10/2035 kein Schalttag fällt.

Wenn man die Rechnung nicht mit den 50. Geburtstagen der Partner, sondern mit den Geburtstagen der Partner ausführt, liefern Vorwärtsrechnung und Rückwärtsrechnung den 26. Januar 1984 als den Tag, der zwischen den beiden Geburtstagen liegt. Wenn man zu diesem Ergebnis 50 Jahre dazurechnet, erhält man den 26. Januar 2034 als den Tag des geplanten Jubiläums. Das wird ein Donnerstag sein.

Mit Python kann die gleiche Aufgabe so programmiert werden:

#! /bin/bash python3
import datetime

print("Rechnung mit den Geburtsdaten")
a = datetime.datetime(1982, 5, 19)
j = datetime.datetime(1985, 10, 4)

diff = j - a;
print((a + diff/2).strftime('%d.%m.%Y'))
print((j - diff/2).strftime('%d.%m.%Y'))

print();
print("Rechnung mit den 50. Geburtstagen:")

print((a.replace(a.year + 50) + diff/2).strftime('%d.%m.%Y'))
print((j.replace(j.year + 50) - diff/2).strftime('%d.%m.%Y'))

Ausgabe:

Rechnung mit den Geburtsdaten
26.01.1984
26.01.1984

Rechnung mit den 50. Geburtstagen:
26.01.2034
25.01.2034

  

Woher ich das weiß:Studium / Ausbildung – Studium der Mathematik

Genau am 19.5.2034.

Ab 4.10.2034 seid ihr dann 101.

Wenn es auf den Tag genau sein soll, ware es der 26.7. oder 27.7., abhängig von der Uhrzeit Eurer Geburt.


FataMorgana2010  01.11.2023, 11:28

Am 26.7.2034 ist er 19061 Tage alt, sie ist 17827 Tage alt - zusammen sind sie 36888 Tage alt, das sind auf jeden Fall deutlich mehr als 100 Jahre. Du musst den "anderen" Mittelwert nehmen, weil die Jahresanzahl zwischen den beiden ungerade ist.

Der Mittelwert zwischen Euren beiden Geburtstagen ist der 26.1.1984. Also seid Ihr am 26.01.2034 zusammen 100 Jahre alt.


gufrastella  01.11.2023, 17:37

Wie kommt man auf den verflixten Mittelwert zwischen den beiden Geburtstagen?

FataMorgana2010  02.11.2023, 10:59
@gufrastella

Excel hilft da sehr. Da kann man sehr hübsch mit Datumsangaben rechnen. Da kannst du dann tatsächlich einfach die Daten eintragen und dann (d1+d2)/2 rechnen.

RStroh  01.11.2023, 10:26

An dem Datum sind sie noch 99.

FataMorgana2010  01.11.2023, 11:31
@RStroh

Du verstehst die Frage falsch, es geht um den Tag, an dem die beiden taggenauen Alter zusammen 100 Jahre ergeben.

Am 26.1.2034 ist er 18880 Tage alt, sie ist 17646 Tage alt. Zusammen sind sie 36526 Tage alt, was (wenn man die durchschnittliche Jahreslänge von 365,25 Tagen, also inkl. Schaltjahre betrachtet) ziemlich exakt 100 Jahre sind.