时间换算——mooc《零基础学Java语言》-(浙大翁凯)第二周编程题(1)

问题描述:

UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分。

有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。

你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

提醒:要小心跨日的换算。

输入格式:

一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。

输出格式:

一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果小时不是0而且分小于10分,需要保留十位上的0。

输入样例:

933

输出样例:

133

时间限制:500ms内存限制:32000kb
 
 
代码实现:
import java.util.Scanner;

public class Main 
{
    public static void main(String[] args) 
    {
        Scanner in=new Scanner(System.in);
        int UTC=0;
        int BJT;
        BJT=in.nextInt();
        int m=BJT%100;//分钟位不能大于60
        if(BJT<800&&m<=60) 
        {
            UTC=BJT+1600;
            System.out.println(UTC);
            if(UTC==2400) 
            {
                UTC=0;
            }
        }
        else if(BJT<=2359&&m<=60)
        {
            UTC=(BJT-800);
            System.out.println(UTC);
        }
        else 
        {
            System.out.println("输入时间错误");
        }
        in.close();

}
}

运行截图:

 

吾生也有涯,而知也无涯
原文地址:https://www.cnblogs.com/daimasanjiaomao/p/10876394.html