| memoriam |
Geschrieben am: Mo 19.11.2007, 08:50
|
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 436 Mitglied seit: 30.03.2005 |
HI,
in PHP: ich habe zwei Termine: 1. Geburtstag (Tag, Monat, Jahr) 2. Stichtag (Tag, Monat, Jahr) - der 1. des nächsten Monats und der anderen folgenden Monate Jetzt brauche ich: Wie alt ist man am Stichtag - auf den Tag genau! Besonderheit: Wenn Geburtstag innerhalb des nächsten halben Jahres (ab Stichtag) - dann Alter gleich ein Jahr älter. Für einen erfahrenen Programmierer sicherlich nicht allzu schwierig. Das Problem dürfte sein: das EXAKTE Alter zu errechnen. Beispiel: Geburtstag ist 10.12.1962 Stichtag: 01.12.2007 Alter ist (da im nächsten halben Jahr Geburtstag) 45 Soweit klar? Über Angebote freue ich mich. memoriam |
![]() |
| David T. |
#2 Geschrieben am: Mo 19.11.2007, 14:43 (+05:52)
|
||
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 110 Mitglied seit: 30.07.2006 |
Am einfachsten ist sicher, die beiden Daten in einen Timestamp umzuwandeln um dann das Alter in Sekunden zu berechnen, das man dann durch die Sekunden pro Jahr teilt:
Wobei natürlich die Frage ist, wie genau das Alter sein muss. Hier wird für ein Jahr 365.25 Tage angenommen, obwohl das eigentlich nicht ganz korrekt ist. Deshalb das obige Script eher als Denkanstoß... -------------------- |
||
![]() |
| Maik power-labels AG |
#3 Geschrieben am: Mo 19.11.2007, 16:41 (+01:58)
|
||
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 485 Mitglied seit: 16.03.2006 |
Mit Unix-Timestamps schießt du dir bei Geburtstagen ordentlich ins Knie. Wenn einer vor 1970 geboren wurde, wird deine Rechnung versagen.
-------------------- |
||
![]() |
| sven_b INTERMEDIA bürogemeinschaft |
#4 Geschrieben am: Mo 19.11.2007, 19:05 (+02:23)
|
||
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 9 Mitglied seit: 18.07.2007 |
Hi, hier mal eine Funktion:
Gruß Sven |
||
![]() |
| Jörg Kruse |
#5 Geschrieben am: Mo 19.11.2007, 23:36 (+04:31)
|
||||||
|
AyomRank 5 Gruppe: Experten Entwicklung Beiträge: 418 Mitglied seit: 19.12.2004 |
Der Timestamp kann auch negative Werte annehmen, sofern das betreffende Script nicht unter Windows läuft
-------------------- |
||||||
![]() |
| Maik power-labels AG |
#6 Geschrieben am: Di 20.11.2007, 00:00 (+00:24)
|
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 485 Mitglied seit: 16.03.2006 |
dieser Hinweis gilt erst ab Version 5.1 und auch nur ausschließlich für diese Funktion
-------------------- |
![]() |
| bowling-liga |
#7 Geschrieben am: Di 20.11.2007, 01:21 (+01:20)
|
||
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 66 Mitglied seit: 16.05.2007 |
Das bleibt in jedem Fall nicht ohne Tuecken ... ich habe dazu auch schon einmal etwas geschrieben. MySQL (ab 4.1.1) beispielsweise erlaubt so ein Konstrukt mit einem beliebigen Datum: SELECT DATEDIFF(NOW(), '1962-12-10'); Das Ergebnis wird in Tagen geliefert. Nun gibt es sicher elegantere Moeglichkeiten Tage in Jahre umzurechen. Aber hier findet man zumindest die interessanteste Moeglichkeit, die dann SELECT DATEDIFF(NOW(), '1962-12-10') * 0.00274; aufzeigt (was auch nichts anderes ist, als mit 365.25 zu rechnen). Um die urspruengliche Aufgabe zu loesen, muss man doch an sich nur vom 1. des naechsten Monats + 6 Monate in die Zukunft rechnen, oder? SELECT FLOOR((DATEDIFF(LAST_DAY(DATE_ADD(now(), INTERVAL 6 MONTH)), '1962-12-10') + 1) * 0.00274) AS AGE; Cheers, Den. -------------------- |
||
![]() |
| David T. |
#8 Geschrieben am: Di 20.11.2007, 16:54 (+15:32)
|
||||
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 110 Mitglied seit: 30.07.2006 |
Wie Jörg Kruse auch schon geantwortet hat, es hilft immer, die richtige Dokumentation zu lesen bevor man seine Weisheiten verbreitet. Ich habe den Snippet als Denkanstoß gepostet. Da ich eine aktuelle PHP-Version unter Linux einsetze für mich kein Problem. Was mich mehr interessierte war, wie andere das Problem angehen würden (und damit meine ich nicht, richtige Dinge falsch aus Dokumentationen zu zitieren, sondern wie sven_b und bowling-liga einen anderen Vorschlag zu posten). Ich habe mir den Ansatz von sven_b angeschaut und bin zu dem Schluss gekommen, dass es davon abhängt, was man nun genau errechnen will: a) Die genaue Zeit in Sekunden/Tagen, die dieser Mensch bereits lebt. b) Wieviele Jahreswechsel dieser Mensch bereits erlebte (+ evtl. 1 zusätzlicher falls er schon nahe dran ist). Der Unterschied besteht darin, dass a) zwar theoretisch genauer ist, aber da in unserer Zeitrechnung ein Jahr nicht immer der gleichen Zahl an Sekunden entspricht, kann es zu Fehlern kommen. b) hingegen ist zwar theoretisch nicht ganz korrekt, dafür aber vermutlich das, was eher gewünscht wird. -------------------- |
||||
![]() |
| sven_b INTERMEDIA bürogemeinschaft |
#9 Geschrieben am: Di 20.11.2007, 18:15 (+01:20)
|
||
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 9 Mitglied seit: 18.07.2007 |
Hi David,
Nun mal ehrlich, wen interessieren hier die Sekunden. ;-) Vor allem wirst du hierfür noch den genauen Zeitpunkt der Geburt wissen müssen. Also ich bin da nicht so kleinlich und mir ist egal um welche Stunde ich am Geburtstag wirklich ein Jahr älter werde. Ab meinem Alter wird man dann sowieso in der Altersfrage nicht mehr kleinlich. ;-) Ach ja, bei meinem Lösungsvorschlag wird garnicht mit dem Timestamp gerechnet (hoffe hab dich richig interpretiert). Gruß Sven |
||
![]() |
| bowling-liga |
#10 Geschrieben am: Di 20.11.2007, 19:30 (+01:14)
|
||||
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 66 Mitglied seit: 16.05.2007 |
Naja, garnicht kann man auch nicht sagen ;-) ... immerhin rufst Du einmal time auf. Aber mal im Ernst, die Aufgabe widerspricht sich selbst in dem Punkt mit dem genauen Alter. Meiner Meinung nach liegt der Schluessel in der Ausnahme, die angegeben wurde. Insofern kann man den Code etwas umstrukturieren:
So long, Den. -------------------- |
||||
![]() |
| sven_b INTERMEDIA bürogemeinschaft |
#11 Geschrieben am: Di 20.11.2007, 20:49 (+01:19)
|
||
|
AyomRank 2 ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 9 Mitglied seit: 18.07.2007 |
Witzbold ;-)) Das deine Routine aber verkehrt rechnet ist dir bewußt? Gib mal das Geburtsdatum ein: 1967-11-30, wieso kommt dann als Alter 40 raus? ;-) Gruß Sven |
||
![]() |
| bowling-liga |
#12 Geschrieben am: Mi 21.11.2007, 00:27 (+03:37)
|
||
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 66 Mitglied seit: 16.05.2007 |
Nee, die rechnet nicht verkehrt ... der Punkt ist doch der, wenn ich noch einmal zitieren darf:
Der Witzboild ist in meinen Augen eigentlich derjenige, der den Thread gestartet hat und sich im Augenblick nicht aeussert ... Cheers, Den. -------------------- |
||
![]() |
| memoriam |
#13 Geschrieben am: Fr 23.11.2007, 09:10 (+2d 08:43)
|
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 436 Mitglied seit: 30.03.2005 |
Hallo Leute,
vielen Dank für Eure Hilfe, allerdings funktioniert auch der letzte Vorschlag nicht so ganz exakt. Ich brauche das taggenaue Alter - mit dem eventuellen halben Jahr - und das ist offensichtlich nicht so einfach hinzukriegen. (Hängt übrigens mit Versicherungsmathematik zusammen...) Wenn also jemand einen Vorschlag hat, ich bin gerne bereit, die Arbeit zu bezahlen. Aus gegebenem Anlass: Aber bitte nur jemand, der es auch kann. Ich habe keine Lust, wieder für eine halbgare Lösung zu bezahlen... Ich freue mich also auf Kontaktaufnahmen |
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
« SEO Tutorial -> Partner gesucht! | Kleinanzeigen & Werbung | klarmobil und vitrado schlagen auf! »
Trackback-Url: http://www.ayom.com/track/t/21658
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| PHP programmierer gesucht | shopic | 735 | 11 | So 16.11.2008, 15:07 |
| Suche Joomla PRogrammierer | finanzcheck | 170 | 3 | Mi 5.11.2008, 22:14 |
| [S] Programmierer für Wordpress Plugin Anpassung | decision | 167 | 4 | Do 16.10.2008, 13:18 |
| Suche Programmierer Praktikum / TZ / VZ / Freelanc | Daniel Cieslar | 107 | 0 | Do 9.10.2008, 13:13 |
| Suche einen PHP / SQL Programmierer | Swisstiger | 464 | 7 | So 21.09.2008, 09:08 |
| Gesucht: Delphi-Programmierer | dandelion | 109 | 0 | Mi 17.09.2008, 12:46 |
| vBulletin / PHP Programmierer für Forum gesucht | BlueEyes82 | 117 | 0 | Mo 1.09.2008, 19:05 |
| Suche Programmierer für | Yel Nats | 221 | 4 | So 31.08.2008, 11:39 |
| Suche PHP/MYSQL Programmierer | Paidunion | 201 | 0 | So 17.08.2008, 12:56 |
Anzeige - [Hier werben / Mediadaten]


















