AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Jahrestage berechnen

Ein Thema von Luckner · begonnen am 31. Mär 2014 · letzter Beitrag vom 1. Apr 2014
Antwort Antwort
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

Jahrestage berechnen

  Alt 31. Mär 2014, 21:01
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBdataset
Hallo,

möchte in meiner Anwendung für unser Verein eine Übersicht über Jahrestage (Geburtstage, Zugehörigkeit usw.) erstellen. Die gesamten Daten sind schon in einer Tabelle vorhanden. Den Mitgliedern soll gratulliert werden zum halben und vollem Jahrzehnt also 20. Geburtstag, 25.-ter, 30.-ter usw. Jetzt fehlt mir der Ansatz für einen Algorithmus. Wie bekommt man raus, anhand des Geburtsdatums, wie alt der Mensch ist. Gibt es in Delphi schon fertige Proceduren dafür?

Danke, Luckner
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.163 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Jahrestage berechnen

  Alt 31. Mär 2014, 21:17
Hallo,

für solche Berechnungen wandle ich das Datum gern um in das Format JJJJMMTT. Dann kannst du "ganz normal rechnen", z.B. aktuelles Jahr - Geburtsjahr = Alter.
Für deine Anforderungen könnte die Mod Funktion hilfreich sein.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Jahrestage berechnen

  Alt 31. Mär 2014, 21:28
Schau dir einfach mal die folgenden Funktionen an:

System.DateUtils.YearsBetween
System.DateUtils.DaysBetween
System.DateUtils.HoursBetween
System.DateUtils.MinutesBetween
System.DateUtils.SecondsBetween
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Jahrestage berechnen

  Alt 31. Mär 2014, 21:54
Hi,

ich habe dafür eine SP in der Firebird DB:

Code:
create or alter procedure get_age (
    geb_datum date$,
    datum date$ = null)
returns (
    result smallint$)
as
begin
  result = null;
  if (:geb_datum is not null) then
  begin
    if (:datum is null) then
      datum = current_date;
    result = extract(year from :datum) - extract(year from :geb_datum);
    -- wenn Tag erst noch kommt, dann minus 1
    if (extract(month from :geb_datum) >= extract(month from :datum)) then
    begin
      if (extract(month from :geb_datum) > extract(month from :datum)) then
        result = :result - 1;
      else
        if (extract(day from :geb_datum) > extract(day from :datum)) then
          result = :result - 1;
    end
  end
  suspend;
end
Wobei date$ und smallint$ Domains sind.

Dann kannst du mit:
select result from get_age(geb_datum) das Alter ermitteln.

Frank
Frank Reim
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Jahrestage berechnen

  Alt 31. Mär 2014, 21:57
Oder man nimmt die entsprechende Funktion von FireBird

DateDiff()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Jahrestage berechnen

  Alt 31. Mär 2014, 22:34
Oder man nimmt die entsprechende Funktion von FireBird

DateDiff()
Wie machst du das?
Ich habe es damit nämlich nicht hinbekommen!

Frank
Frank Reim
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#7

AW: Jahrestage berechnen

  Alt 1. Apr 2014, 13:38
Es gab da mal einen Beitrag von Wolfgang Mix der evntuell hilfreich sein könnte

http://www.delphipraxis.net/141399-d...unktionen.html
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#8

AW: Jahrestage berechnen

  Alt 1. Apr 2014, 14:33
... und es gibt ein Tutorial

http://www.delphipraxis.net/146593-a...errechnen.html

den Rest müßte eine Abfrage lösen, etwa
if alter mod 5 = 0 then...
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824

Geändert von Wolfgang Mix ( 1. Apr 2014 um 14:42 Uhr)
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Jahrestage berechnen

  Alt 1. Apr 2014, 21:20
Danke für die Hinweise. Werde mich damit auseinander setzen. Hatte schon so ein Gefühl, dass das keine 08/15-Aufgabe sein wird. Aber so macht das Programmieren auch Spass.

Danke, Luckner
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz