Arithmetikausdruck

Eine Sammlung arithmetischer Funktionen und Operationen, mit denen andere Watch Face-Format-Elemente zur Auflösung von Echtzeitattributwerten und gyroskopischen Effekten verwendet werden.

Eingeführt in Wear OS 4.

Beispiel

Ein Beispielausdruck zum Drehen eines Werts um bis zu 5 Grad in beide Richtungen, basierend auf dem $-x-$-Wert des Beschleunigungsmessers des Wear OS-Geräts:

(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)

Dies entspricht dem folgenden mathematischen Ausdruck, wobei $\theta_x $ den Winkel des Beschleunigungsmessers in Richtung $ x $ darstellt:

$$ \frac{5}{90} * max(min(\theta_x, 90), -90) $$

Funktionen

Das Zifferblattformat erkennt die folgenden Stringwerte als Funktionen:

Funktion Beschreibung Rückgabetyp Verfügbarkeit
round() Wandelt den Eingabewert in einen Gleitkommawert um und führt dann die standardmäßige mathematische round()-Operation aus. Ganzzahl Version 1
floor() Führt die standardmäßige mathematische floor()-Operation aus. Frei schwebend Version 1
ceil() Führt die standardmäßige mathematische ceil()-Operation aus. Frei schwebend Version 1
fract() Gibt den Bruchteil des Eingabewerts zurück, also den Teil des Gleitkommawerts, der rechts vom Dezimalzeichen angezeigt wird. Frei schwebend Version 1
sin() Führt die standardmäßige trigonometrische sin()-Operation aus. Frei schwebend Version 1
cos() Führt die standardmäßige trigonometrische cos()-Operation aus. Frei schwebend Version 1
tan() Führt die standardmäßige trigonometrische tan()-Operation aus. Frei schwebend Version 1
asin() Führt die standardmäßige trigonometrische asin()-Operation aus. Der zurückgegebene Wert liegt immer im Bereich $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Frei schwebend Version 1
acos() Führt die standardmäßige trigonometrische acos()-Operation aus. Der zurückgegebene Wert liegt immer im Bereich [0,0, \pi] $. Frei schwebend Version 1
atan() Führt die standardmäßige trigonometrische atan()-Operation aus. Der zurückgegebene Wert liegt immer im Bereich $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. Frei schwebend Version 1
abs() Wandelt den Eingabewert in einen Gleitkommawert um und führt dann die standardmäßige mathematische abs()-Operation aus. Frei schwebend Version 1
clamp(,,) Wandelt die Eingabewerte in Gleitkommawerte um und führt dann den Jetpack-Vorgang clamp() aus, um den ersten Wert in den Bereich einzupassen, der durch den zweiten und dritten Wert definiert ist. Frei schwebend Version 1
rand(,) Generiert einen zufälligen Gleitkommawert, der gleichzeitig die folgenden Bedingungen erfüllt:
  • Größer oder gleich dem ersten Wert.
  • Kleiner als oder gleich dem zweiten Wert.
Unternimmt, dass der erste Wert kleiner oder gleich dem zweiten Wert ist.
Frei schwebend Version 1
log() Führt die standardmäßige mathematische Operation "base-$ e $" log() aus. Frei schwebend Version 1
log2() Simuliert einen Logarithmus zur Basis 2. Dieser Wert wird berechnet, indem der Eingabewert log() zur Basis 10 durch den Logarithmus von 2 $ zur Basis 10 geteilt wird. Frei schwebend Version 1
log10() Führt die standardmäßige mathematische Operation log() zur Basis 10 durch. Frei schwebend Version 1
sqrt() Führt die standardmäßige mathematische sqrt()-Operation aus. Frei schwebend Version 1
cbrt() Führt die standardmäßige mathematische cbrt()-Operation aus. Frei schwebend Version 1
exp() Führt die standardmäßige mathematische exp()-Operation aus. Frei schwebend Version 1
expm1() Ruft direkt die mathematische expm1()-Operation auf, wenn der Eingabewert 1 $ beträgt. Bei jedem anderen Eingabewert wird die Funktion simuliert, indem die standardmäßige mathematische exp()-Operation ausgeführt und dann 1 subtrahiert wird. Frei schwebend Version 1
deg() Führt die standardmäßige mathematische toDegrees()-Operation aus. $ \frac{\pi}{2} $ ist als 90 Grad und $ \pi $ als 180 Grad definiert. Frei schwebend Version 1
rad() Führt die standardmäßige mathematische toRadians()-Operation aus. 90 Grad werden als $ \frac{\pi}{2} $ und 180 Grad als $ \pi $ definiert. Frei schwebend Version 1
pow(,) Führt die standardmäßige mathematische pow()-Operation aus. Der Ausgabewert ist immer eine Gleitkommazahl. Frei schwebend Version 1
numberFormat(,) Wendet das Zahlenformat im ersten Wert auf den zweiten Wert an. Der erste Wert kann die folgenden Zeichen enthalten:
  • #: steht für eine numerische Zahl.
  • ,: steht für ein Komma als Trennzeichen in großen Zahlen.
  • . – steht für einen Dezimalpunkt.
String Version 1
icuText()

Wandelt den String für das Eingabedatumsformat in ein Muster um, das dem erwarteten Sprachformat entspricht. Wenn das übergeordnete Element PartText ein Localization-Element enthält, wird das Format dieser Sprache verwendet. Andernfalls wird die aktuelle Sprache des Wear OS-Geräts verwendet.

Wenn das Gerät beispielsweise in den USA verwendet wird, liefert der Eingabewert EE, MMM d, yyyy h:mm a die folgende Ausgabe: Tue, Mar 14, 2023 1:59 PM

String Version 1
icuText(,)

Wandelt das erste Argument input date format string in ein Muster um, das dem erwarteten Sprachformat entspricht. Das zweite Argument ist ein Zeitstempelstring in Millisekunden.

Wenn das übergeordnete Element PartText ein Localization-Element enthält, wird das Format dieser Sprache verwendet. Andernfalls wird die aktuelle Sprache des Wear OS-Geräts verwendet.

String Version 2
icuBestText()

Wandelt den String für das Eingabedatumsformat in die aktuelle Uhrzeit um, deren Muster dem erwarteten Format entspricht. Wenn das übergeordnete Element PartText ein Localization-Element enthält, wird das Format dieser Sprache verwendet. Andernfalls wird die aktuelle Sprache des Wear OS-Geräts verwendet.

Wenn das Gerät beispielsweise am 14. März 2023 um 13:59 Uhr in den USA verwendet wird, ergibt der Eingabewert yyyy MMM d EE a h:mm folgende Ausgabe: Tue, Mar 14, 2023, 1:59 PM

String Version 1
icuBestText(,)

Wandelt das erste Argument input date format string in die aktuelle Uhrzeit um, deren Muster dem erwarteten Format entspricht. Das zweite Argument ist ein Zeitstempelstring in Millisekunden.

Wenn das übergeordnete Element PartText ein Localization-Element enthält, wird das Format dieser Sprache verwendet. Andernfalls wird die aktuelle Sprache des Wear OS-Geräts verwendet.

String Version 2
subText(,,)

Extrahiert eine Teilzeichenfolge aus dem ersten Wert. Der zweite Wert gibt den 0-basierten Index in den ersten Wert an, bei dem der Teilstring beginnen soll. Der dritte Wert gibt den 0-basierten Index in den ersten Wert an, an dem die Teilstring-Extraktion beendet werden soll („ab dem zweiten Wert bis zum dritten Wert, jedoch nicht einschließlich des dritten Werts“).

Beispiele:
  • subText("abc def", 2, 5) ist c d
  • subText("abc def", 2, 7) ist c def
String Version 1
textLength()

Berechnet die Länge des Eingabestrings.

Beispiele:
  • subText("abc def", 2, 5) ist c d
  • subText("abc def", 2, 7) ist c def
String Version 1

Netzbetreiber

Das Zifferblattformat erkennt die folgenden Stringwerte als Operatoren:

+
Unäres Plus oder Addition mehrerer Werte. Unterstützt sowohl Ganzzahlen als auch Gleitkommawerte.
-
Unäres Minus oder Subtraktion mehrerer Werte. Unterstützt sowohl Ganzzahlen als auch Gleitkommawerte.
*
Multiplikation mehrerer Ganzzahl- oder Gleitkommawerte
/

Division von zwei Ganzzahl- oder Gleitkommawerten.

Wenn die Division von zwei Ganzzahlen zu einem Wert führt, der keine Ganzzahl ist, wird der Dezimalteil im Gleitkommaergebnis beibehalten. Beispiel: $ \frac{1}{2} = 0, 5 $.

Darüber hinaus wird der Ausdruck $ \frac{x}{0} $ als 0 ausgewertet, wobei $ x $ eine beliebige Ganzzahl ist.

%

Modulare Division von zwei Ganzzahl- oder Gleitkommawerten.

Wenn beide Operanden Ganzzahlen sind, ist das Ergebnis der Rest der Division der beiden Werte. Beispiel: $ 19 \bmod 7 = 5 $.

Wenn mindestens ein Operand eine Gleitkommazahl ist, ist das Ergebnis ein Gleitkomma-Äquivalent zum Rest. Beispiel: $ 19,0 \bmod 7 = 5,0 $.

~

Bitweiser „Nicht“-Operator. Hier einige Beispiele:

  • ~1 kostet -2 $
  • ~0 kostet -1 $
!

Logischer „nicht“-Operator, der doppelte negative Zahlen unterstützt. Hier einige Beispiele:

  • !2 $ sind false
  • $ !!0 $ entspricht true
|

Bitweiser „oder“-Operator. Unterstützt mehr als zwei Eingabewerte. Hier einige Beispiele:

  • 1 $ | 0 = 1 $
  • 1 $ | 2 | 4 = 7 $
||
Logischer „oder“-Operator
&
Bitweiser „und“-Operator. Unterstützt genau 2 Eingabewerte.
&&
Logischer „und“-Operator
(
Klammer auf. Wird zum Ändern der Standardreihenfolge von Vorgängen verwendet, wobei Multiplikation und Division normalerweise Vorrang vor Addition und Subtraktion haben.
)
Geschlossene Klammer. Wird zum Ändern der Standardreihenfolge von Vorgängen verwendet, wobei Multiplikation und Division normalerweise Vorrang vor Addition und Subtraktion haben.
<
Der Vergleichsoperator „kleiner als“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis false.
<=
Der Vergleichsoperator „kleiner oder gleich“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis true.
>
Der Vergleichsoperator „größer als“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis false.
>=
Der Vergleichsoperator „größer als oder gleich“. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis true.
? und :

Bietet Unterstützung für ternäre Vorgänge. Das allgemeine Format sieht so aus:

condition ? value_if_true : value_if_false

Unterstützt verschachtelte ternäre Operationen bei Verwendung von Klammern.

,

Trennt Werte in Funktionen, die mehr als ein Argument annehmen.

"

Gibt an, dass das Zifferblattformat den Wert als String interpretieren soll, wenn das Zifferblatt am Anfang und Ende eines Werts platziert wird.

==

Für Gleichheit vergleichen. Beim Vergleich einer Ganzzahl mit ihrem Gleitkommawert ist das Ergebnis true.

!=

Für Ungleichheit vergleichen. Beim Vergleich einer Ganzzahl mit ihrem Gleitkomma-Äquivalent lautet das Ergebnis false.