Created
December 5, 2022 12:58
-
-
Save ryanamaral/cb7b918cc88d5e80c495e658382fc2d3 to your computer and use it in GitHub Desktop.
π Get Emoji Clock Face given LocalTime (Kotlin)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fun LocalTime.emojiClock(): String { | |
return if (minute in 15..44) { | |
// half-hour clock emoji | |
when (hour % 12) { | |
0 -> "\uD83D\uDD67" // π§ | |
1 -> "\uD83D\uDD5C" // π | |
2 -> "\uD83D\uDD5D" // π | |
3 -> "\uD83D\uDD5E" // π | |
4 -> "\uD83D\uDD5F" // π | |
5 -> "\uD83D\uDD60" // π | |
6 -> "\uD83D\uDD61" // π‘ | |
7 -> "\uD83D\uDD62" // π’ | |
8 -> "\uD83D\uDD63" // π£ | |
9 -> "\uD83D\uDD64" // π€ | |
10 -> "\uD83D\uDD65" // π₯ | |
11 -> "\uD83D\uDD66" // π¦ | |
12 -> "\uD83D\uDD67" // π§ | |
else -> throw Exception("Invalid hour: ${hour % 12}") | |
} | |
} else { // minute in 45..14 | |
// hour o'clock emoji | |
when (hour % 12) { | |
0 -> "\uD83D\uDD5B" // π | |
1 -> "\uD83D\uDD50" // π | |
2 -> "\uD83D\uDD51" // π | |
3 -> "\uD83D\uDD52" // π | |
4 -> "\uD83D\uDD53" // π | |
5 -> "\uD83D\uDD54" // π | |
6 -> "\uD83D\uDD55" // π | |
7 -> "\uD83D\uDD56" // π | |
8 -> "\uD83D\uDD57" // π | |
9 -> "\uD83D\uDD58" // π | |
10 -> "\uD83D\uDD59" // π | |
11 -> "\uD83D\uDD5A" // π | |
12 -> "\uD83D\uDD5B" // π | |
else -> throw Exception("Invalid hour: ${hour % 12}") | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class EmojiClockUnitTest { | |
@Test | |
fun testEmojiClockFaceAt15() { | |
// half-hour clock emoji | |
assertEquals("π§", LocalTime.of(0, 15).emojiClock()) | |
assertEquals("π", LocalTime.of(1, 15).emojiClock()) | |
assertEquals("π", LocalTime.of(2, 15).emojiClock()) | |
assertEquals("π", LocalTime.of(3, 15).emojiClock()) | |
assertEquals("π", LocalTime.of(4, 15).emojiClock()) | |
assertEquals("π ", LocalTime.of(5, 15).emojiClock()) | |
assertEquals("π‘", LocalTime.of(6, 15).emojiClock()) | |
assertEquals("π’", LocalTime.of(7, 15).emojiClock()) | |
assertEquals("π£", LocalTime.of(8, 15).emojiClock()) | |
assertEquals("π€", LocalTime.of(9, 15).emojiClock()) | |
assertEquals("π₯", LocalTime.of(10, 15).emojiClock()) | |
assertEquals("π¦", LocalTime.of(11, 15).emojiClock()) | |
assertEquals("π§", LocalTime.of(12, 15).emojiClock()) | |
// repeat | |
assertEquals("π", LocalTime.of(13, 15).emojiClock()) | |
assertEquals("π", LocalTime.of(14, 15).emojiClock()) | |
assertEquals("π", LocalTime.of(15, 15).emojiClock()) | |
assertEquals("π", LocalTime.of(16, 15).emojiClock()) | |
assertEquals("π ", LocalTime.of(17, 15).emojiClock()) | |
assertEquals("π‘", LocalTime.of(18, 15).emojiClock()) | |
assertEquals("π’", LocalTime.of(19, 15).emojiClock()) | |
assertEquals("π£", LocalTime.of(20, 15).emojiClock()) | |
assertEquals("π€", LocalTime.of(21, 15).emojiClock()) | |
assertEquals("π₯", LocalTime.of(22, 15).emojiClock()) | |
assertEquals("π¦", LocalTime.of(23, 15).emojiClock()) | |
} | |
@Test | |
fun testEmojiClockFaceAt30() { | |
// half-hour clock emoji | |
assertEquals("π§", LocalTime.of(0, 30).emojiClock()) | |
assertEquals("π", LocalTime.of(1, 30).emojiClock()) | |
assertEquals("π", LocalTime.of(2, 30).emojiClock()) | |
assertEquals("π", LocalTime.of(3, 30).emojiClock()) | |
assertEquals("π", LocalTime.of(4, 30).emojiClock()) | |
assertEquals("π ", LocalTime.of(5, 30).emojiClock()) | |
assertEquals("π‘", LocalTime.of(6, 30).emojiClock()) | |
assertEquals("π’", LocalTime.of(7, 30).emojiClock()) | |
assertEquals("π£", LocalTime.of(8, 30).emojiClock()) | |
assertEquals("π€", LocalTime.of(9, 30).emojiClock()) | |
assertEquals("π₯", LocalTime.of(10, 30).emojiClock()) | |
assertEquals("π¦", LocalTime.of(11, 30).emojiClock()) | |
assertEquals("π§", LocalTime.of(12, 30).emojiClock()) | |
// repeat | |
assertEquals("π", LocalTime.of(13, 30).emojiClock()) | |
assertEquals("π", LocalTime.of(14, 30).emojiClock()) | |
assertEquals("π", LocalTime.of(15, 30).emojiClock()) | |
assertEquals("π", LocalTime.of(16, 30).emojiClock()) | |
assertEquals("π ", LocalTime.of(17, 30).emojiClock()) | |
assertEquals("π‘", LocalTime.of(18, 30).emojiClock()) | |
assertEquals("π’", LocalTime.of(19, 30).emojiClock()) | |
assertEquals("π£", LocalTime.of(20, 30).emojiClock()) | |
assertEquals("π€", LocalTime.of(21, 30).emojiClock()) | |
assertEquals("π₯", LocalTime.of(22, 30).emojiClock()) | |
assertEquals("π¦", LocalTime.of(23, 30).emojiClock()) | |
} | |
@Test | |
fun testEmojiClockFaceAt45() { | |
// hour o'clock emoji | |
assertEquals("π", LocalTime.of(0, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(1, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(2, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(3, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(4, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(5, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(6, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(7, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(8, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(9, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(10, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(11, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(12, 45).emojiClock()) | |
// repeat | |
assertEquals("π", LocalTime.of(13, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(14, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(15, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(16, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(17, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(18, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(19, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(20, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(21, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(22, 45).emojiClock()) | |
assertEquals("π", LocalTime.of(23, 45).emojiClock()) | |
} | |
@Test | |
fun testEmojiClockFaceAt0() { | |
// hour o'clock emoji | |
assertEquals("π", LocalTime.of(0, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(1, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(2, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(3, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(4, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(5, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(6, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(7, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(8, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(9, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(10, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(11, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(12, 0).emojiClock()) | |
// repeat | |
assertEquals("π", LocalTime.of(13, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(14, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(15, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(16, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(17, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(18, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(19, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(20, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(21, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(22, 0).emojiClock()) | |
assertEquals("π", LocalTime.of(23, 0).emojiClock()) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment