AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ein Jahrhundert zurückrechnen ?

Offene Frage von "spacewolf"
Ein Thema von spacewolf · begonnen am 8. Jul 2005 · letzter Beitrag vom 8. Jul 2005
Antwort Antwort
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#1

ein Jahrhundert zurückrechnen ?

  Alt 8. Jul 2005, 12:42
Gibts ne einfach möglichlichkeit einen TDatewert um 100 Jahre zurückzurechnen.
Ich bekomme in einer Software von mir Geburtsdaten von Menschen rein die noch gar nicht leben könnten wie z.B. 12.12.2064.
Naja, und ich würde gern das ganze Problem zumindest umgehen in dem ich sage, wenn Datum größer als heute, dann minimiere das Datum um hundert jahre....

einen Tag rechne ich mit:

 tag := now - 1 zurück.

Ein Jahr vielleicht nich mit minus 365 .
Aber 100 Jahre mit berücksichtigung der Schaltjahre übersteigt mein Wissen in Datums und Zeitberechnung.

Wollte schon alles in Strings umwandeln und dann aus "20" einfach "19" machen. Aber mein Kollege, findet das wohl zu "quick And dirty" - habt ihr ne gute Idee ?

Andreas
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#2

Re: ein Jahrhundert zurückrechnen ?

  Alt 8. Jul 2005, 12:45
in der DateUtils hast die konstanten für jeweils eine Sekunde, eine Minute, eine Stunde ... das kannst ja auf ein Jahr hochrechnen und dann von Now abziehen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: ein Jahrhundert zurückrechnen ?

  Alt 8. Jul 2005, 12:50
Delphi-Quellcode:
function PrevCentury(dt: TDateTime): TDateTime;
var
  y, m, d: word;
begin
  DecodeDate(dt, y, m, d);
  Result := EncodeDate(y - 100, m, d) + Frac(dt);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#4

Re: ein Jahrhundert zurückrechnen ?

  Alt 8. Jul 2005, 12:51
Delphi-Quellcode:
function DateTimeDecYear(const DateTime: TDateTime; N: Word): TDateTime;
var
   Year, Month, Day: Word;
   Hour, Min, Sec, MSec: Word;
begin
  DecodeDate(DateTime, Year, Month, Day);
  DecodeTime(DateTime, Hour, Min, Sec, MSec);
  Dec(Year, N);
  Result := EncodeDate(Year, Month, Day) + EncodeTime(Hour, Min, Sec, MSec);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(DateTimeToStr(DateTimeDecYear(Now, 100)));
end;
hm, marabu war wieder schneller und optimierter *g*
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: ein Jahrhundert zurückrechnen ?

  Alt 8. Jul 2005, 12:58
Hi Nico,

Zitat von NicoDE:
marabu war wieder schneller
schicke mir eine PN bevor du anfängst zu schreiben - dann passiert sowas nicht.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#6

DANKE - krazz schnell

  Alt 8. Jul 2005, 12:59
seid ja krazz schnell...



danke
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:00 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