/*
* 题目内容:
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.测试未通过");
}
}
}
JAVA北京时间转换为世界协调时
最新推荐文章于 2024-08-16 15:01:46 发布