时区转换

题目内容:

UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8 。程序读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分,小时是0,则没有百位部分;如果分小于10分,则保留10位上的0.有效输入范围是0到2359,输出UTC时间。

分析思路:输入范围定义错误,分不能大于59,因此更改输入范围为小时大于等于0小于等于23,分大于等于0小于等于59

时区转换

程序:

package temperature;

import java.util.Scanner;

public class Timechange {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int BJT;
        int h;
        int m;
        Scanner in = new Scanner(System.in);
        System.out.println("请输入北京时间BJT:");
        BJT = in.nextInt();
        in.close();
        h = BJT/100;
        m=BJT%100;
        if (h>=0&&h<=23&&m>=0&&m<=59) {
            if (h<8)
            {
                h=24+(h-8);
                if (m<10)
                {
                    System.out.println("世界协调时UTC:"+h+"0"+m);
                }
                else
                {
                    System.out.println("世界协调时UTC:"+h+m);
                }
            }
            else if (h==8)
            {
                if (m<10)
                {
                    System.out.println("世界协调时UTC:0"+m);
                }
                else
                {
                System.out.println("世界协调时UTC:"+m);
                }
            }
            else
            {
                h=h-8;
                if (m<10)
                {
                    System.out.println("世界协调时UTC:"+h+"0"+m);
                }
                else
                {
                    System.out.println("世界协调时UTC:"+h+m);
                }
            }
        

    }
        else
        {
            System.out.println("时间格式不正确,请重新输入!");
        }
    }
}