Microsoft Excel

Herbers Excel/VBA-Archiv

Sterbedatum bekannt, Geburtstag berechnen

    Betrifft: Sterbedatum bekannt, Geburtstag berechnen von: AmOk66
    Geschrieben am: 01.10.2003 08:48:39

    Hallo Leute,
    als Ahnenforscher steht man oft vor dem Problem, daß man einen Sterbeeintrag findet, mit der Angabe z.B. 79 Jahre, 3 Monate und zwölf Tage. Wie kann ich aus dieser Angabe den Geburtstag zurückrechnen? Dabei ist noch zu berücksichtigen, daß EXCEL mit der 1900 ein Problem hat...

    Gruß und danke,

    Amok66

      


    Betrifft: AW: Sterbedatum bekannt, Geburtstag berechnen von: Hans W. Hofmann
    Geschrieben am: 01.10.2003 11:54:10

    Lieber AmOk66,

    ich würde schon lieber mit einem richtigen Menschen reden, oder soll ich die Lösung an R2D2 schicken und ihr verständigt euch dann direkt?
    Man könnte das Datum in ein Julianisches Datum (evtl. Google dazu befragen) umrechnen, das ist eine serielle Tageszahl beginnend ca 5000? v. Chr. Die Rechnungen damit handeln und dann wieder zurück. Nur was will uns Deine Beispielangabe exakt betrachtet sagen? Da wirst Du eine umfangreiche Berechnung hinterlegen müssen, wenns einigermaßen exakt sein soll. Soll es das?

    Gruß HW


      


    Betrifft: AW: Sterbedatum bekannt, Geburtstag berechnen von: Amadeus
    Geschrieben am: 01.10.2003 12:27:06

    Hallo Hans W. Hofmann,

    in den meisten Foren ist es üblich, sich mit einem Synonym anzumelden und sich auch damit im Forum zu bewegen. Ich kenne die Gepflogenheiten dieses Forums nicht, deshalb habe ich die übliche Art benutzt. Wenn Dir also Amadeus besser gefällt...! ;-)
    Ja, ich hätte schon ein exaktes Datum, weil das manchmal wichtig ist, um Personen korrekt zuordnen zu können. Es ist teilweise so, das zur gleichen Zeit Personen gleichen Namens auftauchen (z.B. Vater und Sohn, oder Cousins usw.), die man nur anhand des Geburtsdatums unterscheiden lassen.
    Kurzum, "es soll".

    Lieben Gruß
    Amadeus


      


    Betrifft: AW: Anrede... von: Nike
    Geschrieben am: 01.10.2003 12:50:49

    Hi,
    kleiner Tip zum Thema, welche Regeln in diesem Forum gelten,
    einfach mal nen Blick in die FAQ werfen ;-)
    https://www.herber.de/forum/faq.htm

    Bye

    Nike


      


    Betrifft: AW: Sterbedatum bekannt, Geburtstag berechnen von: Hans W. Hofmann
    Geschrieben am: 01.10.2003 13:25:58

    Hallo Amadeus

    simmer wieder gut, war nicht böse gemeint :-)
    Nun, am vielversprechensten scheint ein Beispiel unter
    http://de2.php.net/manual/de/function.jdtogregorian.php
    http://de2.php.net/manual/de/function.gregoriantojd.php
    zu sein. Ist zwar PHP-Code, sollte aber leicht anzupassen sein.
    Wenn Du nicht klar kommst melde Dich noch mal...


    Gruß HW


      


    Betrifft: AW: Sterbedatum bekannt, Geburtstag berechnen von: Amadeus
    Geschrieben am: 01.10.2003 13:29:15

    Hallo Hans W. Hofmann,

    gibt es keine Möglichkeit in Excel? Ich kann leider kein PHP!

    Gruß Amadeus


      


    Betrifft: AW: Sterbedatum bekannt, Geburtstag berechnen von: Hans W. Hofmann
    Geschrieben am: 01.10.2003 22:11:43

    Ich kan auch kein PHP, aber der Übergang zu VBA ist schnell gemacht:
    Lassen wir den Mann/Frau gestorben sein am
    A                            B
    01.10.1951                   2433921 =GregorianToJD(A1)
                                   28956 =365*79+90+12+GANZZAHL(79/4)
    20.6.1872 =JDtoGregorian(B3) 2404965 =B1-B2
    

    Berechne aus den Sterbetag das Julianische Tagesdatum ziehe die Lebenszeit in Tagen ab und wandle wieder zurück in das Gregorianische Datum.
    Die Gretchenfrage ist die Interpretation der Altersangabe 79 J 3 M 12 T.
    Wieviele Tage sind gemeint?
    Ich setze mal 79*365+90+12 Tage + einen Schätzer für die Schaltjahre und komme auf den Geburtstag 20.6.1872 (einen Tag hin oder her).


    Gruß HW


    'jdtogregorian --  Konvertierung vom Julianischen Datum zum
    'Gregorianischen Kalender
    'Beschreibung
    'string jdtogregorian ( int julianday)
    '
    'Diese Funktion konvertiert den in julianday angegebenen
    'Tag im Julianischen Datum in einen String, der das Datum
    'nach dem Gregorianischen Kalender in der Form "DD.MM.YYYY" enthält.
    'uni_fl4r3 at t hotmail dot com
    'ad to VBA (hw) 1.10.03
     
    Function JDtoGregorian(julian As Long) As String
    Dim day As Long, month As Long, year As Long
    Dim calc As Long
     
        julian = julian - 1721119
        calc = 4 * julian - 1
        year = Int(calc / 146097)
        julian = Int(calc - 146097 * year)
        day = Int(julian / 4)
        calc = 4 * day + 3
        julian = Int(calc / 1461)
        day = calc - 1461 * julian
        day = Int((day + 4) / 4)
        calc = 5 * day - 3
        month = Int(calc / 153)
        day = calc - 153 * month
        day = Int((day + 5) / 5)
        year = 100 * year + julian
     
        If (month < 10) Then
            month = month + 3
        Else
            month = month - 9
            year = year + 1
        End If
        JDtoGregorian = day & "." & month & "." & year
     
    End Function
     
     
    'gregoriantojd --  Konvertierung vom Gregorianischen Kalender
    'zum Julianischen Datum
    'Beschreibung
    'int gregoriantojd ( int month, int day, int year)
    '
    '
    'Diese Funktion konvertiert das in month, day und year
    'übergebene Datum im Gregorianischen Kalender in einen Tag
    'im Julianischen Datum.
    '
    'Gültige Daten liegen im Bereich von 4714 v. Chr. bis
    '9999 n. Chr. Der Gregorianische Kalender wurde allerdings
    'erst am 15. Oktober 1582 (bzw. am 5. Oktober nach dem bis
    'dahin gültigen Julianischen Kalender) von Papst Gregor XIII.
    'eingeführt, in einigen Ländern erst sehr viel später.
    'So übernahmen die Briten den Gregorianischen Kalender 1752,
    'die UDSSR 1918 und Griechenland erst im Jahre 1923.
    'In den meisten europäischen Ländern wurde vor dem Gregorianischen
    'der Julianische Kalender benutzt.
    'erik at nospam dot tba dot com dot br
    'ad to VBA (hw) 1.10.03
     
    Function GregorianToJD(Datum As Variant) As Long
    Const day = 0, month = 1, year = 2
    Dim c As Long
    Datum = Split(Datum, ".")
     
        If (Datum(month) > 2) Then
            Datum(month) = Datum(month) - 3
        Else
            Datum(month) = Datum(month) + 9
            Datum(year) = Datum(year) - 1
        End If
        c = Int(Datum(year) / 100)
        GregorianToJD = Int((146097 * c) / 4)
        GregorianToJD = GregorianToJD + Int((1461 * (Datum(year) - (100 * c))) / 4)
        GregorianToJD = GregorianToJD + Int(((153 * Datum(month)) + 2) / 5)
        GregorianToJD = GregorianToJD + Datum(day) + 1721119
     
    End Function
     



     

    Beiträge aus den Excel-Beispielen zum Thema " Sterbedatum bekannt, Geburtstag berechnen"