JAVA北京时间转换为世界协调时

/*
 * 题目内容:
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,则没有百位部分;如果分小于10分,需要保留十位上的0。


输出格式:

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


输入样例:

903


输出样例:

103

 */
package bJT2UTC;

import java.util.Scanner;

public class BJT2UTC {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int bjt, a, b, c, d, hour, minute;
        // 定义变量,bjt存放北京时间,a表示千位,b表示百位
        // c表示十位,d表示各位,hour表示小时,minute表示分钟
        Scanner in = new Scanner(System.in);
        bjt = in.nextInt();
        in.close();
        if (bjt >= 0 && bjt <= 2359) {
            a = bjt / 1000;
            if (a != 0) {
                b = (bjt / 100) % (a * 10);
            } else {
                b = (bjt / 100);
            }
            if ((bjt / 100) != 0) {
                c = (bjt / 10) % ((bjt / 100) * 10);
            } else {
                c = (bjt / 10);
            }
            if ((bjt / 10) != 0) {
                d = bjt % ((bjt / 10) * 10);
            } else {
                d = bjt;
            }
            hour = bjt / 100;
            if (hour != 0) {
                minute = bjt % (hour * 100);
            } else {
                minute = bjt;
            }
            System.out.println("a=" + a + ",b=" + b + ",c=" + c + ",d=" + d + ",hour=" + hour + ",minute=" + minute);
            if (((a >= 0 && a <= 1 && b >= 0 && b <= 9) || (a == 2 && b >= 0 && b <= 3)) && c >= 0 && c <= 6 && d >= 0
                    && d <= 9) {
                if (hour >= 8) {
                    hour -= 8;
                    if (hour == 0) {
                        System.out.print("1.输入BJT对应的UTC为" + minute);
                    } else {
                        if (minute < 10) {
                            System.out.print("2.输入BJT对应的UTC为" + hour + "0" + minute);
                        } else {
                            System.out.print("3.输入BJT对应的UTC为" + hour + minute);
                        }
                    }
                } else {
                    hour += 16;
                    if (minute < 10) {
                        System.out.print("4.输入BJT对应的UTC为" + hour + "0" + minute);
                    } else {
                        System.out.print("5.输入BJT对应的UTC为" + hour + minute);
                    }
                }
            } else {
                System.out.print("6.测试未通过");
            }
        } else {
            System.out.print("7.测试未通过");
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值