HackerRank Js-Week1 3. Time Conversion

    HackerRank

    Given a time in 12-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.

    給與一個 12 小時制 AM/PM 格式的時間,將其轉換為軍用(24 小時制)時間。
    

    Example 1:

    s = '12:01:00PM'
    Return '12:01:00'.
    

    Example 2:

    s = '12:01:00AM'
    Return '00:01:00'.
    

    solution:
    先了解 AM 與 PM 的時間轉換格式,將 PM 的部分進行分類後,額外增加 12,(’12:00:00′ 轉換成 ’24:00:00’。)
    再將 AM 的 ’12:00:00′ 轉換成 ’00:00:00’。

    Code 1: BigO(n log n)

    'use strict';
    
    const fs = require('fs');
    
    process.stdin.resume();
    process.stdin.setEncoding('utf-8');
    
    let inputString = '';
    let currentLine = 0;
    
    process.stdin.on('data', function(inputStdin) {
        inputString += inputStdin;
    });
    
    process.stdin.on('end', function() {
        inputString = inputString.split('\n');
    
        main();
    });
    
    function readLine() {
        return inputString[currentLine++];
    }
    
    /*
     * Complete the 'timeConversion' function below.
     *
     * The function is expected to return a STRING.
     * The function accepts STRING s as parameter.
     */
    
    function timeConversion(s) {
        // Write your code here
        let checkAmPm = s.charAt(8),
            militaryTime = s.substring(0, 2)
      
        if (checkAmPm === "P" && militaryTime !== "12") {
            militaryTime = String(parseInt(militaryTime, 10) + 12);
        } else if (checkAmPm === "A" && militaryTime === "12") {
            militaryTime = "00";
        }
        
        return militaryTime + s.substring(2, 8);
    }
    
    function main() {
        const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
    
        const s = readLine();
    
        const result = timeConversion(s);
    
        ws.write(result + '\n');
    
        ws.end();
    }
    

    FlowChart:
    Example 1

    s = '12:01:00PM'
    
    checkAmPm = 'P'
    '12:01:00PM' => '12:01:00'
    

    Example 2

    s = '12:01:00AM'
    
    
    checkAmPm = 'A'
    '12:01:00AM' => '00:01:00'