Time Conversion – Algorithms – Hackerrank- Kotlin

Problem:

Given a time in -hour AM/PM format, convert it to military (24-hour) time.Note: – 12:00:00AM on a 12-hour clock is 00:00:00 on a 24-hour clock.
– 12:00:00PM on a 12-hour clock is 12:00:00 on a 24-hour clock.
Example
Return ’12:01:00′.
Return ’00:01:00′.
Function Description
Complete the timeConversion function in the editor below. It should return a new string representing the input time in 24 hour format.
timeConversion has the following parameter(s):
  • string s: a time in hour format
Returns
  • string: the time in hour format

Input Format

A single string that represents a time in -hour clock format (i.e.: or ).

Constraints

  • All input times are valid

Sample Input 0

07:05:45PM

Sample Output 0

19:05:45

 

Yukarıdaki hackerrank sorusu için Kotlin çözümüm:

package com.example.hackerranktimeconversionsolution

import kotlin.io.*
import kotlin.text.*

class Solution {

fun timeConversion(s: String): String {

val getZone = s.substring(8, 10)  // “AM” veya “PM” bilgisi
val getTime = s.substring(0, 8)   // saat:dakika:saniye gösterimi için örneğin 19:05:45 gösterimi

val getHour = s.substring(0, 2) // saat bilgisi
val getMinutes = s.substring(2, 8) // dakika bilgisi

var result: String

/* kurduğum algoritmada eğer zone “AM” ise saatin 12 olup olmadığına baktım. Eğer saat 12 ise problemde istenildiği üzere 12 değerini 00 ile değiştirdim. Saat 12 değilse time’ı result değerime atadım.  Eğer zone”AM” değilse saat değerini problemde istenildiği üzere 12 ekleyerek formatladım. Eğer saat 12 ise zamanı result’a atadım değilse formatladığım saat üzerinden zamanı result değerine atadım. */

result = if (getZone == “AM”) {
if (getHour == “12”) {
“00$getMinutes”
} else {
getTime
}
} else {
var newFormatHour = getHour.toInt() + 12
if (getHour == “12”) {
getTime
} else {
“$newFormatHour$getMinutes”
}
}

return result
}

fun main(args: Array<String>) {
val s = readLine()!!

val result = timeConversion(s)

println(result)
}

}

Github Link: https://github.com/yaseminuctas/timeConversionSolution_hackerrank

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir