Skip to content

Instantly share code, notes, and snippets.

@mcihad
Created October 7, 2024 07:48
Show Gist options
  • Save mcihad/141bed76eb578055abb9853ec91b09e2 to your computer and use it in GitHub Desktop.
Save mcihad/141bed76eb578055abb9853ec91b09e2 to your computer and use it in GitHub Desktop.
object NumberExtension {
private val birler = arrayOf("", "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz")
private val onlar = arrayOf("", "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan")
private val gruplar = arrayOf("", "Bin", "Milyon", "Milyar", "Trilyon", "Katrilyon")
@JvmStatic
fun Long.humanize(): String {
if (this == 0L) return "Sıfır"
var sayi = this
var cevirilen = ""
var grupIndeksi = 0
while (sayi > 0) {
val grupDegeri = (sayi % 1000).toInt()
if (grupDegeri > 0) {
val grupDegeriYaziyla = grupDegeriniCevir(grupDegeri, grupIndeksi == 1)
cevirilen = "$grupDegeriYaziyla ${gruplar[grupIndeksi]} $cevirilen"
}
sayi /= 1000
grupIndeksi++
}
return cevirilen.trim()
}
private fun grupDegeriniCevir(sayi: Int, binlikGrubu: Boolean): String {
val yuzler = sayi / 100
val onlarBasamagi = (sayi % 100) / 10
val birlerBasamagi = sayi % 10
var yaziyla = ""
if (yuzler > 0) {
yaziyla += if (yuzler == 1) "Yüz " else "${birler[yuzler]} Yüz "
}
if (onlarBasamagi > 0) if (onlarBasamagi == 1) {
yaziyla += "On "
} else {
yaziyla += "${onlar[onlarBasamagi]} "
}
if (birlerBasamagi > 0) {
yaziyla += if (binlikGrubu && birlerBasamagi == 1) "" else "${birler[birlerBasamagi]} "
}
return yaziyla
}
private fun kurusuCevir(kurus: Long): String {
val kurusYaziyla = kurus.humanize()
if (kurus == 0L) return ""
return if (kurusYaziyla == "Bir") "Bir Kuruş" else "$kurusYaziyla Kuruş"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment