The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Quiq::Formatter - Formatierung von Werten

BASE CLASS

Quiq::Object

METHODS

Konstruktor

new() - Instantiiere Objekt

Synopsis

  $f = $class->new;

Returns

Path-Objekt

Description

Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück. Da die Klasse ausschließlich Klassenmethoden enthält, hat das Objekt ausschließlich die Funktion, eine abkürzende Aufrufschreibweise zu ermöglichen.

Zahlen

normalizeNumber() - Normalisiere Zahldarstellung

Synopsis

  $x = $class->normalizeNumber($x);

Description

Entferne unnötige Nullen von einer Zahl, forciere als Dezimaltrennzeichen einen Punkt (anstelle eines Komma) und liefere das Resultat zurück.

Example

  123.456000 -> 123.456
  70.00 -> 70
  0.0 -> 0
  -0.0 -> 0
  007 -> 7
  23,7 -> 23.7

readableNumber() - Zahl mit Trenner an Tausender-Stellen

Synopsis

  $str = $class->readableNumber($x);
  $str = $class->readableNumber($x,$sep);

Description

Formatiere eine Zahl $x mit Tausender-Trennzeichen $sep. Per Default ist $sep ein Punkt (.). Handelt es sich bei $x um eine Zahl mit Nachkomma-Stellen, wird der Punkt durch ein Komma (,) ersetzt.

Example

  1 -> 1
  12 -> 12
  12345 -> 12.345
  -12345678 -> -12.345.678
  -12345.678 -> -12.345,678

Datums/Zeitangaben

reducedIsoTime() - Erzeuge reduzierte ISO-Zeitdarstellung

Synopsis

  $str = $class->reducedIsoTime($now,$time);

Arguments

$now

Bezugszeitpunkt in Unix Epoch oder als ISO-Datum.

$time

Zeit in Unix Epoch oder als ISO-Datum.

Returns

Reduzierte ISO-Zeitdarstellung (String)

Description

Erzeuge eine "reduzierte" ISO-Zeitdarstellung für Zeitpunkt $time relativ zu Bezugszeitpunkt $now. Die unreduzierte ISO-Zeitdarstellung hat das Format:

  YYYY-MM-DD HH:MM:SS

Die reduzierte Dastellung ist identisch aufgebaut, nur dass alle führenden Zeitkomponenten fehlen, die zum Bezugszeitpunkt $now identisch sind.

Diese Darstellung ist nützlich, um in einer Liste von Zeiten die nah am aktuellen Zeipunkt liegenden Zeiten leichter erkennen zu können, z.B. in einer Verzeichnisliste:

  $ quiq-ls ~/dvl
  | rwxr-xr-x | xv882js | rvgroup | 2018-07-07 07:08:17 |  | d | ~/dvl/.cotedo  |
  | rwxr-xr-x | xv882js | rvgroup | 2018-06-29 11:06:38 |  | d | ~/dvl/.jaz     |
  | rwxr-xr-x | xv882js | rvgroup |         17 07:29:51 |  | d | ~/dvl/Blob     |
  | rwxr-xr-x | xv882js | rvgroup |         17 07:29:52 |  | d | ~/dvl/Export   |
  | rwxr-xr-x | xv882js | rvgroup |         17 07:29:52 |  | d | ~/dvl/Language |
  | rwxr-xr-x | xv882js | rvgroup |         17 07:29:52 |  | d | ~/dvl/Library  |
  | rwxr-xr-x | xv882js | rvgroup |               37:47 |  | d | ~/dvl/Package  |

Examples

Keine gemeinsame Zeitkomponente:

  Quiq::Formatter->reducedIsoTime(1558593179,1530940097);
  ==>
  2018-07-07 07:08:17

Jahr und Monat sind gemeinsam:

  Quiq::Formatter->reducedIsoTime(1558593179,1558070991);
  ==>
  17 07:29:51

Alle Komponenten, bis auf die Sekunden, sind identisch:

  Quiq::Formatter->reducedIsoTime(1558593179,1558593168);
  ==>
  48

(alles in Zeitzone MESZ)

VERSION

1.196

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2021 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.