📜  程序在给定时间后K分钟后查找时间

📅  最后修改于: 2021-05-31 21:58:45             🧑  作者: Mango

给您以24小时制(hh:mm)的时间T和正整数K,您必须在24小时制中的K分钟之后告诉时间。

例子:

Input: T = 12:43, K = 21
Output: 13:04

Input: T = 20:39, K = 534
Output: 05:33

方法:

  • 以分钟为单位转换给定时间
  • 将K加到它等于M。
  • 相应地以24小时格式转换M分钟。

    下面是上述方法的实现:

    C++
    #include 
    using namespace std;
      
    // function to obtain the new time
    void findTime(string T, int K)
    {
      
        // convert the given time in minutes
        int minutes = ((T[0] - '0')
                           * 10
                       + T[1] - '0')
                          * 60
                      + ((T[3] - '0')
                             * 10
                         + T[4] - '0');
      
        // Add K to current minutes
        minutes += K;
      
        // Obtain the new hour
        // and new minutes from minutes
        int hour = (minutes / 60) % 24;
      
        int min = minutes % 60;
      
        // Print the hour in appropriate format
        if (hour < 10) {
            cout << 0 << hour << ":";
        }
        else {
            cout << hour << ":";
        }
      
        // Print the minute in appropriate format
        if (min < 10) {
            cout << 0 << min;
        }
        else {
            cout << min;
        }
    }
      
    // Driver code
    int main()
    {
      
        string T = "21:39";
      
        int K = 43;
      
        findTime(T, K);
    }


    Java
    // Java program of above approach
    class GfG {
      
    // function to obtain the new time 
    static void findTime(String T, int K) 
    { 
      
        // convert the given time in minutes 
        int minutes = ((T.charAt(0) - '0') 
                        * 10
                    + T.charAt(1) - '0') 
                        * 60
                    + ((T.charAt(3) - '0') 
                            * 10
                        + T.charAt(4) - '0'); 
      
        // Add K to current minutes 
        minutes += K; 
      
        // Obtain the new hour 
        // and new minutes from minutes 
        int hour = (minutes / 60) % 24; 
      
        int min = minutes % 60; 
      
        // Print the hour in appropriate format 
        if (hour < 10) 
        { 
            System.out.print("0" + hour + ":"); 
        } 
        else 
        { 
            System.out.print(hour + ":"); 
        } 
      
        // Print the minute in appropriate format 
        if (min < 10) 
        { 
            System.out.println("0" + min); 
        } 
        else 
        { 
            System.out.println(min); 
        } 
    } 
      
    // Driver code 
    public static void main(String[] args) 
    { 
      
        String T = "21:39"; 
        int K = 43; 
        findTime(T, K); 
    } 
    }
      
    // This code is contributed by Prerna Saini


    Python3
    # Python3 program for given approach
      
    # function to obtain the new time
    def findTime(T, K):
          
        # convert the given time in minutes
        minutes = (((ord(T[0]) - ord('0'))* 10 + 
                     ord(T[1]) - ord('0'))* 60 + 
                   ((ord(T[3]) - ord('0')) * 10 + 
                     ord(T[4]) - ord('0')));
                      
        # Add K to current minutes
        minutes += K
      
        # Obtain the new hour
        # and new minutes from minutes
        hour = (int(minutes / 60)) % 24
      
        min = minutes % 60
      
        # Print the hour in appropriate format
        if (hour < 10):
            print(0, hour, ":", end = " ")
      
        else:
            print(hour, ":", end = " ")
      
        # Print the minute in appropriate format
        if (min < 10):
            print(0, min, end = " ")
      
        else:
            print(min,end = " ")
      
    # Driver code
    if __name__ == '__main__':
        T = "21:39"
      
        K = 43
      
        findTime(T, K)
          
    # This code is contributed by
    # Surendra_Gangwar


    C#
    // C# program of above approach
    using System;
      
    class GfG
    {
          
        // function to obtain the new time 
        static void findTime(string T, int K) 
        { 
          
            // convert the given time in minutes 
            int minutes = ((T[0] - '0') 
                            * 10
                        + T[1] - '0') 
                            * 60
                        + ((T[3] - '0') 
                                * 10
                            + T[4] - '0'); 
          
            // Add K to current minutes 
            minutes += K; 
          
            // Obtain the new hour 
            // and new minutes from minutes 
            int hour = (minutes / 60) % 24; 
          
            int min = minutes % 60; 
          
            // Print the hour in appropriate format 
            if (hour < 10) 
            { 
                Console.Write("0" + hour + ":"); 
            } 
            else
            { 
                Console.Write(hour + ":"); 
            } 
          
            // Print the minute in appropriate format 
            if (min < 10) 
            { 
                Console.Write("0" + min); 
            } 
            else
            { 
                Console.Write(min); 
            } 
        } 
        // function to obtain the new time 
          
        // Driver code 
        public static void Main() 
        { 
          
            string T = "21:39"; 
            int K = 43; 
            findTime(T, K); 
        } 
    }
      
    // This code is contributed by ihritik


    PHP


    输出:
    22:22
    
    想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”