AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi problem bei "selbstgerschriebenem" decodedate...
Thema durchsuchen
Ansicht
Themen-Optionen

problem bei "selbstgerschriebenem" decodedate...

Ein Thema von heiopei · begonnen am 11. Mai 2005 · letzter Beitrag vom 14. Mai 2005
 
heiopei
(Gast)

n/a Beiträge
 
#11

Re: problem bei "selbstgerschriebenem" decodedate.

  Alt 13. Mai 2005, 20:46
abend,

Zitat:
@heiopei: Hast du denn verstanden, dass ich deine Frage nach der Fehlerursache beantwortet hatte?
ich versteh den sinn des satzes leider nich sorry

Zitat:
Nochmal im Klartext: Du hast den Aufruf von DateTimeToTimeStamp eliminiert, der in der Original-Unit die Basistransformation durchführt.
schon klar, dass ich den eliminiert habe, aber ich habe auch die ganze "datums"-verwaltung daran angepasst. also, jetz zeig ich noch mal meinen ganzen lösungsweg auf.

ich erhalte ein datum mittels get_sysdate. hier wird eine api-funktion aufgerufen, die das datum (+zeit) in form von tsystemtime ausgibt. dann wandle ich dieses ergebnis mit encodedate in eine gültige integer-zahl um. die sollte jetz imho timestamp.date (oder wie das heißt) entsprechen.
so, jetzt löse ich diese zahl mit hilfe (der gegenfunktion) von encodedate wieder in die einzelnen zahlen-werte auf. dabei sollte es doch eigentlich völlig egal sein, dass ich timestampto... weglasse, da ich ja eh nur mit dem datum arbeite und nicht auch noch mit der zeit.
--> da ich von vornherein nur mit integerwerten arbeite, brauche ich auch keine umformung mit timestampto... vornehmen!!!!

oder liege ich hier jetzt falsch -wenn ja tuts mir fett sorry


noch ein paar ergenzungen:

Delphi-Quellcode:
type TSystemTime = record
  wYear: Word;
  wMonth: Word;
  wDayOfWeek: Word;
  wDay: Word;
  wHour: Word;
  wMinute: Word;
  wSecond: Word;
  wMilliseconds: Word;
end;

//diese funktion berechnet aus dem übergebenen jahr, monat und dem tag das datum
function EncodeDate(Year, Month, Day: Word): Integer;
var
  I: Integer;
  DayTable: PDayTable;
begin
  try
  result := 0;
  DayTable := @MonthDays[IsLeapYear(Year)];
  if (Year >= 1) and (Year <= 9999) and (Month >= 1) and (Month <= 12) and
    (Day >= 1) and (Day <= DayTable^[Month]) then
  begin
    for I := 1 to Month - 1 do
      Inc(Day, DayTable^[I]);
    I := Year - 1;
    result := I * 365 + I div 4 - I div 100 + I div 400 + Day - 693594;
  end;
  except
    raise conv.Create('Fehler beim codieren von Datumswerten in einen ' +
        'Integer-Wert!');
  end;
end;

//funktion ermittelt das aktuelle systemdatum
function Get_SysDate: Integer;
var
  SystemTime: TSystemTime;
begin
  GetSystemTime(SystemTime);
  with SystemTime do
    Result := EncodeDate(wYear, wMonth, wDay);
end;
mfg,
heiopei
  Mit Zitat antworten Zitat
 


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 22:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz