2 时间转换2

2023-05-16

2 时间转换2

作者: Turbo时间限制: 1S章节: 分支结构

问题描述 :

给定一个t,将t秒转化为DD days HH:MM:SS的形式,表示DD天HH小时MM分钟SS秒。

HH,MM,SS均是两位数,如果小于10用0补到两位。

如果大于等于2天,则输出DD days HH:MM:SS,比如 2 days 01:05:12

如果大于等于1天并小于2天,则输出 1 day HH:MM:SS,比如 1 day 01:05:12

如果大于等于1小时并小于1天,则只输出HH:MM:SS,比如 01:05:12

如果大于等于1分钟并小于1小时,则只输出MM:SS,比如 01:00

如果大于等于10秒并小于1分钟,则只输出SS,比如 10

如果小于10秒,则只输出一位,表示秒数,比如 9

输入说明 :

输入一个数t,表示时间的秒数。

0<=t<1002460*60。

输出说明 :

输出格式形如:

86 days 00:02:12

表示86天0小时2分12秒。

其中“days”前后各有一个空格,行尾没空格。

详细描述见上。

输入范例 :

8003045
输出范例 :

92 days 15:04:05

import java.util.Scanner;

public class test_2 {
    /**
     * 2 时间转换2
     */
    public static int TIME_DAY = 24*60*60;
    public static int TIME_HOUR = 60*60;
    public static int TIME_MINUTE = 60;
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println(formatTime(scanner.nextInt()));
    }
    public static String formatTime(int timestamp){
        int day,hour,minute,second;
        day=timestamp/TIME_DAY;
        timestamp%=TIME_DAY;
        hour=timestamp/TIME_HOUR;
        timestamp%=TIME_HOUR;
        minute=timestamp/TIME_MINUTE;
        second=timestamp%TIME_MINUTE;
        StringBuilder builder = new StringBuilder();
        if (day >= 2) {
            //如果大于等于2天,则输出DD days HH:MM:SS,比如 2 days 01:05:12
            builder.append(day).append(" days ");
            formate1(hour, minute, second, builder);
        }else if(day>=1 && day<2){
            //如果大于等于1天并小于2天,则输出 1 day HH:MM:SS,比如 1 day 01:05:12
            builder.append(day).append(" day ");
            formate1(hour, minute, second, builder);
        }else if(day==0 && hour>=1){
            //如果大于等于1小时并小于1天,则只输出HH:MM:SS,比如 01:05:12
            formate1(hour, minute, second, builder);
        }else if(day==0 && hour<1 && minute>=1){
            //如果大于等于1分钟并小于1小时,则只输出MM:SS,比如 01:00
            format2(minute, second, builder);

        }else if(day==0 && hour==0 && minute<1){
            // 如果大于等于10秒并小于1分钟,则只输出SS,比如 10
            //如果小于10秒,则只输出一位,表示秒数,比如 9
            builder.append(second);
        }
        return builder.toString();
    }

    private static void formate1(int hour, int minute, int second, StringBuilder builder) {
        if(hour<10){
            builder.append("0").append(hour);
        }else{
            builder.append(hour);
        }
        builder.append(":");
        format2(minute, second, builder);
    }

    private static void format2(int minute, int second, StringBuilder builder) {
        if(minute<10){
            builder.append("0").append(minute);
        }else{
            builder.append(minute);
        }
        builder.append(":");
        if(second<10){
            builder.append("0").append(second);
        }else{
            builder.append(second);
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2 时间转换2 的相关文章

随机推荐