Skip to content

Instantly share code, notes, and snippets.

@ryanamaral
Created December 5, 2022 12:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanamaral/cb7b918cc88d5e80c495e658382fc2d3 to your computer and use it in GitHub Desktop.
Save ryanamaral/cb7b918cc88d5e80c495e658382fc2d3 to your computer and use it in GitHub Desktop.
πŸ•Ÿ Get Emoji Clock Face given LocalTime (Kotlin)
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}")
}
}
}
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