Contoh Program Elixir: Membuat Konversi detik ke Jam Menit Detik

Kali ini kita akan membuat contoh program yang dapat menkonversi detik menjadi sebuah kalimat “1 Hari 3 Jam 50 Menit 40 Detik”. Inputan yang akan dimasukkan adalah angka dengan satuan detik. Kemudian dengan operasi modulus akan diatur sedemikian rupa menjadi kalimat waktu. Di Elixir untuk melakukan operasi modulus, dilakukan dengan menggunakan function rem(n1, n2). Sedangkan berikut adalah aturan untuk mengubah detik menjadi satuan lain:

  • detik ke hari dibagi 86400
  • detik ke jam dibagi 3600
  • detik ke menit dibagi 60

Berikut adalah contoh implementasi kode dari kasus yang telah dikemukakan diatas:




defmodule Times do
    def second_to_day(n) do 
        Float.floor(n / 86400)
    end

    def second_to_hour(n) do 
        Float.floor(n / 3600)
    end

    def second_to_minute(n) do 
        Float.floor(n / 60)
    end

    def second_to_daytime(n) do
        day = second_to_day(n)
        rem1 = rem(n, 86400)
        hour = second_to_hour(rem1)
        rem2 = rem(rem1, 3600)
        minute = second_to_minute(rem2)
        rem3 = rem(rem2, 60)

        result = to_string(round(day)) <> " hari " <> to_string(round(hour)) <> " jam " <> to_string(round(minute)) <> " menit " <> to_string(round(rem3))  <> " detik"
        result
    end
end

param = IO.gets("Masukkan detik: ")
{val1, _} = Integer.parse(param)

hasil = Times.second_to_daytime(val1)
IO.puts(hasil)

Sekarang mari kita lihat eksekusi program di konsol:


$ elixir time-converter.ex 
Masukkan detik: 100000
1 hari 3 jam 46 menit 40 detik
$ elixir time-converter.ex 
Masukkan detik: 3600
0 hari 1 jam 0 menit 0 detik
$ elixir time-converter.ex 
Masukkan detik: 2750
0 hari 0 jam 45 menit 50 detik
$ elixir time-converter.ex 
Masukkan detik: 7513 
0 hari 2 jam 5 menit 13 detik
$ elixir time-converter.ex 
Masukkan detik: 123124
1 hari 10 jam 12 menit 4 detik

Leave a Reply