태그 표현식
태그 표현식을 사용하여 고유하고 동적인 시계 화면을 만듭니다. 태그 표현식은 태그 값(날짜 및 시간 또는 배터리 상태, 걸음 수와 같은 시계 데이터)을 기반으로 구성요소의 회전, 배치, 불투명도를 변경할 수 있는 조건입니다. 태그 값이 변경되면 시계 화면이 동적으로 변경됩니다.
예를 들어 화면의 객체가 찰나의 순간에 수직으로 이동하는 시계 화면을 만들거나, 특정 시간에 표시되거나 사라지는 객체가 있는 시계 화면을 만들 수 있습니다.
구성요소의 회전, 배치, 불투명도 속성 입력란에 태그 표현식을 직접 입력합니다.
태그는 대괄호로 묶어야 합니다. 시계 화면 스튜디오에서 태그 스크립팅 대화상자를 열려면 태그를 클릭하세요. 스크립팅 대화상자에서 긴 태그 표현식을 입력하고 원하는 데이터를 검색할 수 있습니다.

다음 표에는 태그 설명 및 값 범위가 나와 있습니다.
날짜 및 시간
태그 | 정의 | 범위 | 예 |
---|---|---|---|
UTC_TS | 에포크로부터 UTC 밀리초로 표시된 타임스탬프 | 1256953732 | |
MSEC | 밀리초 | 0 - 999 | 123 |
SEC | 1분 기준의 초 | 0 - 59 | 12 |
SEC_Z | 1분 기준의 초(앞에 0 표시) | 00 - 59 | 03 |
SEC_MSEC | 1분 기준의 초(밀리초 포함) | 0.0 - 59.999 | 1.234 |
SEC_IN_DAY | 1일 기준의 초 | 0 - 86,400 | 12,345 |
MIN | 1시간 기준의 분 | 0 - 59 | 3 |
MIN_Z | 1시간 기준의 분(앞에 0 표시) | 00 - 59 | 03 |
MIN_SEC | 1시간 기준의 분(초 포함) | 0.0 - 59.999 | 1.234 |
HOUR_0_11 | 1일 기준의 시(0-11) | 0 - 11 | 3 |
HOUR_0_11_Z | 1일 기준의 시(0-11, 앞에 0 표시) | 00 - 11 | 03 |
HOUR_0_11_MIN | 1일 기준의 시(0-11, 분 포함) | 0.0 - 11.999 | 1.234 |
HOUR_1_12 | 1일 기준의 시(1-12) | 1 - 12 | 3 |
HOUR_1_12_Z | 1일 기준의 시(0-12, 앞에 0 표시) | 01 - 12 | 03 |
HOUR_1_12_MIN | 1일 기준의 시(0-12, 분 포함) | 1.0 - 12.999 | 1.234 |
HOUR_0_23 | 1일 기준의 시(0-23) | 0 - 23 | 3 |
HOUR_0_23_Z | 1일 기준의 시(0-23, 앞에 0 표시) | 00 - 23 | 03 |
HOUR_0_23_MIN | 1일 기준의 시(0-23, 분 포함) | 0.0 - 23.999 | 1.234 |
HOUR_1_24 | 1일 기준의 시(1-24) | 1 - 24 | 3 |
HOUR_1_24_Z | 1일 기준의 시(1-24, 앞에 0 표시) | 01 - 24 | 03 |
HOUR_1_24_MIN | 1일 기준의 시(1-24, 분 포함) | 1.0 - 24.999 | 1.234 |
DAY_1_31 | 날짜(1-31) | 1 - 31 | 3 |
DAY_1_31_Z | 날짜(1-31, 앞에 0 표시) | 01 - 31 | 13 |
DAY_1_31_HOUR | 날짜(1-31, 시 포함) | 1.0 - 31.999 | 1.234 |
DAY_WEEK | 요일 | 1(일요일) - 7(토요일) | 3 |
DAY_WEEK_F | 요일(전체 텍스트) | 일요일 - 토요일 | 수요일 |
DAY_WEEK_S | 요일(약어) | 일 - 토 | 수 |
DAY_IN_YEAR | 1년 기준 날짜 | 1 - 365 | 123 |
DAYS_IN_MON | 이번 달 기준 날짜 | 28 - 31 | 31 |
MON | 1년 기준 월 | 1 - 12 | 3 |
MON_Z | 1년 기준 월(앞에 0 표시) | 01 - 12 | 03 |
MON_F | 1년 기준 월(전체 텍스트) | 1월 - 12월 | 11월 |
MON_S | 1년 기준 월(약어) | 1 - 12 | 11 |
MON_DAY | 월(날짜 포함) | 1.0 - 12.999 | 11.111 |
YEAR | 연도 | 0000 - 9999 | 2021 |
YEAR_S | 축약된 연도(마지막 두 자리로 표시) | 00 - 99 | 21 |
YEAR_MON | 연도(월 포함) | 2021.307 | |
WEEK_IN_YEAR | 1년 기준 주 | 1-52 | 24 |
WEEK_IN_MON | 1개월 기준 주 | 1 ~ 5 | 2 |
IS_24H | 시스템에서 24시간 형식을 사용하는지 여부 | 0(12시간), 1(24시간) | 0 |
IS_DST | 시스템에서 일광 절약 시간을 사용하는지 여부 | 0(아니요), 1(예) | 0 |
TMZN_ABB | 시간대 약어 | PST | |
TMZN_OFS | 시간대 오프셋 | -12 - +14 | +9 |
TMZN_OFS_WITH_DST | 일광 절약 시간에 맞게 수정된 시간대 오프셋 | -12 - +14 | -7 |
TMZN_ID | 시간대 ID | Asia/Seoul | |
IS_AFTNOON | 시간이 정오 이전인지 이후인지 여부 | 0(오전), 1(오후) | 0 |
AMPM_PO | AM 또는 PM 문자열의 위치 | -1(알 수 없음), 0(첫 번째), 1(마지막) | 0 |
AMPM | 시스템 언어에 맞게 형식이 지정된 AM/PM 문자열 | AM/PM | AM |
설정 정보
태그 | 정의 | 범위 | 예 |
---|---|---|---|
LANG_LOC | 언어, 국가, 변형, 스크립트, 확장자로 구성된 시스템 언어 객체의 문자열 표현 예: en-US | ko_KR |
디바이스 정보
태그 | 정의 | 범위 | 예 |
---|---|---|---|
BATT_PER | 현재 배터리 잔량 비율 | 0~100 | 70 |
BATT_IS_CHARGE | 배터리가 충전 중인지 여부 | 0(아니요), 1(예) | 1 |
BATT_IS_LOW | 시계의 배터리가 부족한 상태에서 충전 중이 아닌지 여부 | 0(아니요), 1(예) | 0 |
BATT_TEM_C | 현재 배터리 온도(°C) | 28.8 | |
BATT_TEM_F | 현재 배터리 온도(°F) | 83.84 | |
UNREAD_NC | 기기에서 읽지 않은 알림 수 | 3 |
센서 데이터
태그 | 정의 | 범위 | 예 |
---|---|---|---|
IS_ACC | 기기에 가속도계 센서가 있는지 여부 | 0(아니요), 1(예) | 1 |
ACC_X | X축에서의 가속도 | ||
ACC_Y | y축에서의 가속도 | ||
ACC_Z | Z축에서의 가속 | ||
ACC_A_X | X축에서의 가속 각도 | -90.0 - 90.0 | |
ACC_A_Y | Y축에서의 가속 각도 | -90.0 - 90.0 | |
ACC_A_Z | Z축에서의 가속 각도 | -90.0 - 90.0 | |
ACC_A_XY | 각도 X + 각도 Y | -180.0 - 180.0 |
헬스 데이터
태그 | 정의 | 범위 | 예 |
---|---|---|---|
HR | 심박수 | 0 - | 60 |
HR_Z | 심박수(앞에 0 표시) | 00 80 120 |
|
SC | 걸음 수 | 0 - | 1000 |
SC_GOAL | 걸음 수 목표 | 1 - 20000 | 20000 |
SC_PER | 걸음 수 목표 대비 걸음 수 | 0 - 100 |
달의 위상
태그 | 정의 | 범위 | 예 |
---|---|---|---|
MOON_PO | 달의 위상 위치 | 0 - 28(아래 참고) | 14.5 |
MOON_TY | 달의 위상 유형 | 0 - 7(아래 참고) | 2 |
MOON_TY_NAME | 유형 이름 | (아래 참고) |
MOON_PO 태그의 범위 정의는 다음과 같습니다.
- 0-0.5: 신월
- 0.5-6.5 : 저녁 초승달
- 7 : 상현
- 7.5-13.5 : 상현망
- 14 : 보름달
- 14.5-20.5 : 하현망
- 21 : 하현
- 21.5-27.5 : 아침 초승달
- 27.5-28 : 신월
MOON_TY 및 MOON_TY_NAME 태그의 범위 정의는 다음과 같습니다.
- 0 : 신월
- 1 : 저녁 초승달
- 2 : 상현
- 3 : 상현망
- 4 : 보름달
- 5 : 하현망
- 6 : 하현
- 7 : 아침 초승달
함수
함수 | 정의 | 표현식 예 | 출력 예 |
---|---|---|---|
round(num) | num에 가장 가까운 정수를 반환합니다. | round(1.6) | 2 |
floor(num) | num보다 작거나 같은 최대 정수를 반환합니다. | floor(1.6) | 1 |
ceil(num) | num보다 크거나 같은 최소 정수를 반환합니다. | ceil(1.2) | 2 |
sin(num) | num의 사인 값을 반환합니다. | sin(1) | 0.84147096 |
cos(num) | num의 코사인 값을 반환합니다. | cos(1) | 0.5403023 |
tan(num) | num의 탄젠트 값을 반환합니다. | tan(1) | 1.5574077 |
abs(num) | 0부터의 거리를 반환합니다. | abs(-10) | 10 |
clamp(num, min, max) | max와 min 사이에 고정된 num 값을 반환합니다. | clamp([ACC_A_X], -30, 60) | -30~60 |
numberFormat(form, num) | num을 form 형식으로 변환합니다. form은 다음 값으로 구성됩니다. 0: 빈 공백을 0으로 채웁니다. #: 값이 없는 곳은 표시하지 않습니다. .: 소수점 위치를 나타냅니다. |
(numberFormat("#.#", [SEC_MSEC])) (numberFormat("#.###", ([SEC_MSEC]*10))) (numberFormat("000.000", ([SEC_MSEC]*10))) (numberFormat("0000.000", ([SEC_MSEC]*10))) |
32.4 324.37 324.370 0324.370 |
asin(num) | num의 아크사인 함수를 반환합니다. | asin(0.841) | 1 |
acos(num)m | num의 아크코사인 함수를 반환합니다. | acos(0.54) | 1 |
atan(num) | num의 아크탄젠트 함수를 반환합니다. | atan(1.557) | 1 |
deg(num) | num을 라디안에서 도 단위로 변환합니다. | deg(3.142) | 180 |
rad(num) | num을 도에서 라디안 단위로 변환합니다. | rad(180) | 3.141 |
pow(base, exponent) | 지수로 제곱된 밑의 결과를 반환합니다. | pow(12, 2) | 144 |
연산자
태그 표현식은 태그 표현식의 값을 수정할 수 있는 다양한 연산자를 지원합니다.
산술 연산자
산술 연산자는 기본적인 수학 함수입니다. 산술 연산자는 두 값(피연산자) 간에 함수를 실행합니다.
연산자 | 정의 |
---|---|
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈의 몫 |
% | 나눗셈의 나머지 |
예
다음 예는 태그 표현식에서 태그 및 산술 연산을 사용하는 방법을 보여줍니다.
-
5 * [BATT_PER] :
배터리 잔량 비율에 5를 곱한 값이 반환됩니다.
배터리 잔량 비율이 7%이면 반환되는 값은 35입니다.
-
[SEC] / 3 :
1분 기준 초를 3으로 나눈 몫이 반환됩니다.
1분에 경과된 초 수가 7이면 반환되는 값은 2.33입니다.
-
[SEC] % 3 :
1분 기준 초를 3으로 나눈 나머지가 반환됩니다.
1분에 경과된 초 수가 7이면 반환되는 값은 1입니다.
-
3 + 5 * [BATT_PER] :
배터리 잔량 비율에 5를 곱한 다음 3이 더해집니다.
배터리 잔량 비율이 7%이면 반환되는 값은 38입니다.
곱셈이 덧셈보다 우선하므로 먼저 곱셈이 수행된 다음, 3이 그 결과에 더해집니다(3 + 5 * 7 → 3 + 35 → 38).
-
(3 + 5) * [BATT_PER] :
괄호의 덧셈 연산이 먼저 수행되고 그 결과에 배터리 진량 비율이 곱해집니다. 배터리 잔량 비율이 7%이면 반환되는 값은 56입니다.
관계 연산자
관계 연산자는 두 값을 비교하여 관계(예: 어느 값이 더 크거나 작은지 또는 서로 같은지)를 결정합니다. true인 비교는 값 1을 반환합니다. false인 비교는 값 0을 반환합니다.
연산자 | 정의 |
---|---|
< | 미만 |
<= | 이하 |
> | 초과 |
>= | 이상 |
== | 같음 |
!= | 같지 않음 |
예
관계 연산은 산술 연산과 결합되는 경우가 있습니다. 다음은 관계 연산만 사용하거나 관계 연산과 산술 연산을 사용하는 예입니다.
-
[BATT_PER] <= 15 :
배터리 잔량 비율이 15% 이하인 경우 [BATT_PER] <= 15가 true이고 1을 반환합니다.
배터리 잔량 비율이 15%보다 큰 경우 [BATT_PER] <= 15는 false이고 0을 반환합니다.
-
1000 * ([HRATE] < 100) + 120
심박수가 100bpm 미만인 경우 [HRATE] < 100은 true이고 값 1을 반환합니다. 그다음으로 1에 1,000을 곱하고 120을 더합니다. 반환되는 최종 값은 1,120입니다.
심박수가 100bpm 이상인 경우 [HRATE] < 100은 false이고 값 0을 반환합니다. 그다음으로 0에 1,000을 곱하고 120을 더합니다. 반환되는 최종 값은 120입니다.
논리 연산자
논리 연산자는 둘 이상의 관계 연산의 결과를 결합하고 값 1(true) 또는 0(false)을 반환합니다. 태그 표현식은 두 가지 유형의 논리 연산(AND 및 OR)을 지원합니다.
-
AND – 별표(*)로 표시됩니다.
AND 논리 연산자가 값 1(true)을 반환하려면 두 관계 연산이 모두 true여야 합니다. 그렇지 않은 경우 반환 값은 0(false)입니다.
-
OR – 더하기 기호(+)로 표시됩니다.
OR 논리 연산자가 값 1(true)을 반환하려면 하나 이상의 관계 연산이 true여야 합니다. 두 관계 연산이 모두 false인 경우 반환 값은 0(false)입니다.
다음 표는 논리 연산의 결과를 설명합니다.
관계 연산 1의 결과 | 관계 연산 2의 결과 | AND(*)의 결과 (관계 연산 1) * (관계 연산 2) |
OR(+)의 결과 (관계 연산 1) + (관계 연산 2) |
---|---|---|---|
0(false) | 0(false) | 0 * 0 = 0 | 0 + 0 = 0 |
0(false) | 1(true) | 0 * 1 = 0 | 0 + 1 = 1 |
1(true) | 0(false) | 1 * 0 = 0 | 1 + 0 = 1 |
1(true) | 1(true) | 1 * 1 = 1 | 1 + 1 = 1 |
두 피연산자(연산자 양쪽의 값)가 모두 관계 연산인 경우에만 논리 연산자가 적용됩니다. 두 피연산자 중 하나가 숫자 값인 경우 산술 연산자가 적용됩니다.
논리 연산 | 산술 연산 | 산술 연산 |
---|---|---|
두 피연산자가 모두 관계 연산임: (0 <= 1) * (1 < 2) 결과: 1 |
한 피연산자는 관계 연산이고 다른 피연산자는 값임: (0 <= 1) *120 결과: 120 |
두 피연산자가 모두 값임: 1 * 120 결과: 120 |
이 태그 표현식은 연산자 양쪽에 두 개의 관계 연산(0<=1 및 1<2)으로 구성됩니다. 따라서 논리 연산자가 적용됩니다. 두 관계 연산이 모두 true이므로 이 태그 표현식의 최종 결과는 1(true)입니다. | 이 태그 표현식은 관계 연산(0<=1)과 숫자 값(120)으로 구성됩니다. 따라서 산술 연산자가 적용됩니다. 관계 연산의 결과는 1(true)이고, 여기에 120이 곱해집니다. 이 연산의 최종 결과는 120입니다. |
이 태그 표현식은 2개의 숫자 값(1과 120)으로 구성됩니다. 따라서 산술 연산자가 적용됩니다. 결과는 1에 120을 곱한 값이며, 최종 결과 120이 반환됩니다. |
3항 연산자
3항 연산에는 3개의 피연산자가 있습니다. 조건부 연산과 조건부 연산이 true인 경우의 결과, 조건부 연산이 false인 경우의 결과가 여기에 해당됩니다. 조건부 연산은 관계 연산 또는 논리 연산일 수 있습니다.
3항 연산은 다음과 같은 형식으로 표시됩니다.
conditional_operation? result_if_true: result_if_false
예
다음 예는 시계 화면에서 이미지의 불투명도를 설정하는 데 사용됩니다.
-
[BATT_PER] <= 20? 15: 100
이 연산은 배터리 잔량 비율이 20% 이하인 경우 시계 화면의 이미지 불투명도를 15로 설정합니다. 그 외의 경우에는 불투명도를 100으로 설정합니다.
-
([BATT_PER] >= 50) * ([BATT_PER] <= 75)? 100: 0
이 예에서는 조건부 연산에 논리 연산을 사용합니다.
이는 배터리 잔량 비율이 50% 이상이고 75% 이하인 경우 시계 화면의 이미지 불투명도를 100으로 설정합니다. 그 외의 경우에는 불투명도를 0으로 설정합니다.
중첩 3항 연산
3항 연산은 다른 3항 연산의 결과 피연산자 내에 중첩될 수 있습니다.
예를 들어 두 개의 3항 연산 (a? b: c)와 (x? y: z)가 있는 경우 다음과 같은 중첩된 3항 연산을 만들 수 있습니다.
-
conditional_operation? (a? b: c): result_if_false
If
conditional_operation
이 true인 경우 조건부 연산 a를 확인합니다.a가 true인 경우 결과는 b입니다. a가 false인 경우 결과는 c입니다.
If
conditional_operation
이 false인 경우 결과는result_if_false
. -
conditional_operation? result_if_true: (x? y: z)
If
conditional_operation
이 true인 경우 결과는result_if_true
.If
conditional_operation
이 false인 경우 조건부 연산 x를 확인합니다.x가 true인 경우 결과는 y입니다. x가 false이면 결과는 z입니다.
-
conditional_operation? (a? b: c): (x? y: z)
If
conditional_operation
이 true인 경우 조건부 연산 a를 확인합니다.a가 true인 경우 결과는 b입니다. a가 false인 경우 결과는 c입니다.
If
conditional_operation
이 false인 경우 조건부 연산 x를 확인합니다.x가 true인 경우 결과는 y입니다. x가 false이면 결과는 z입니다.