Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Sonstiges (https://www.delphipraxis.net/45-library-sonstiges/)
-   -   Delphi Wert in englischen Ordinalen Wert umwandeln (https://www.delphipraxis.net/96217-wert-englischen-ordinalen-wert-umwandeln.html)

xZise 20. Jul 2007 09:50


Wert in englischen Ordinalen Wert umwandeln
 
Manchmal, z.B. bei Rennen, muss man angeben, an welcher Position steht:
Zum Beispiel "1st", "4th"!
Problem in der Englischen Sprache ist, dass nicht alle Ordinalen Werte mit "th" aufhören. Aber auch nicht alle X1 mit "st" (z.B. 11)...

Deshalb habe ich dafür eine Funktion geschrieben.
Sie erwartet den Integer, und gibt ihn als String wieder zurück (mit Ordinaler Endung).
Wenn man den Boolean AOnlyExt auf wahr setzt (standard ist false), dann gibt es nur die Endung zurück: "th" statt "14th"

Hier nun die Funktion:
Delphi-Quellcode:
function GetOrdinalNumber(const ANumber : Integer; const AOnlyExt : Boolean = false) : string;
begin
  if not AOnlyExt then
    Str(ANumber, Result)
  else
    Result := '';

  // Spezial: eleventh, twelfth, thirdteenth
  if ((ANumber mod 100) in [11..13]) then
  begin
    Result := Result + 'th';
  end
  else
  begin
    case ANumber mod 10 of
      1 : Result := Result + 'st';
      2 : Result := Result + 'nd';
      3 : Result := Result + 'rd';
      else Result := Result + 'th';
    end;
  end;
end;
[edit=fkerber]Für die CodeLib aufbereitet. Mfg, fkerber[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 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