時刻を絵文字で表す

時刻から絵文字を取得したい場面があったのでコードを作成しました。

説明

時計の絵文字のコードポイントは、時針のみが 0x1F550 (🕐) から 0x1F55B (🕛)までで、
'半'を表す分針がついたものが、0x1F55C (🕜)から0x1F567(🕧)まであります。

ここでは24時間表記または12時間表記の時刻と分を引数で受け取って近い絵文字を返却する関数を考えました。

コード

11行目で、時刻を1〜12に合わせています。

export const timeToEmoji = (hour: number, min: number) => {
	let hx = hour;
	let withHalf = false;
	if (min < 15) {
		// No adjustment required
	} else if (min < 45) {
		withHalf = true;
	} else {
		hx += 1;
	}
	hx = hx == 0 ? 12 : hx > 12 ? hx - 12 : hx;
	return String.fromCodePoint((withHalf ? 0x1f55b : 0x1f54f) + hx);
};