2 时间转换2

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);
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值