java时间换算(BJU转UTC)

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

内容说明



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。


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


代码示例



import java.util.Scanner;
public class BeijinTime {
  public static void main(String[] args) {
    int utc;
    // 输入BJT
    System.out.print("输入北京时间");
    Scanner intbjt = new Scanner(System.in);
    int bjt = intbjt.nextInt();
    // 获得对应的时和分
    int hour = bjt/100;
    int minute = bjt - 100*hour;
//    System.out.print(hour+","+minute);
    // 判断输入数据是否符合要求
    if(hour>24 || minute>60) {
      System.out.println("输入数据不正确");
    }
    //符合要求的开始处理数据
    else {
      // 小于8的要减一天
      if(hour<=8) {
        hour = 24-8+hour;
        utc = hour*100 + minute;          
      }
      // 大于8的直接处理
      else {
        hour -= 8;
        utc = hour*100 + minute;
      }
      // 输出
      System.out.print("对应的UTC时间为:"+ utc);
    }
    // 释放内存
    intbjt.close();
  }
}


输出结果展示



(这个输出不符合题目要求应该是33,但是2433更加符合我们实际情况所以就2433)


a788ae68c7e54cdc926ad1691f38f867.png

踩坑指南



这个项目没有什么大坑,就是要注意时间转换的点如果是8点应该推到0而不是直接就变成24了,但是实践中还是24会比较正常,所以就擅自修改成了24.


目录
相关文章
|
6月前
|
Java
java 时区转换日期转换:东八区转为UTC零时区
java 时区转换日期转换:东八区转为UTC零时区
248 0
|
6月前
|
Java
java 时区转换日期转换:UTC零时区转成东八区-19位
java 时区转换日期转换:UTC零时区转成东八区-19位
174 0
|
Java
java判断当前时间是否在某个时间区间内(可精确到毫秒)
java判断当前时间是否在某个时间区间内(可精确到毫秒)
847 0
java判断当前时间是否在某个时间区间内(可精确到毫秒)
|
算法 搜索推荐 Java
线性时间选择(Top K)问题(Java)
线性时间选择(Top K)问题(Java)
255 0
线性时间选择(Top K)问题(Java)
java获取时间间隔,获取当天每隔15分钟的时间
Java开发中日常遇到的关于时间的问题
java获取时间间隔,获取当天每隔15分钟的时间
|
Java 程序员
Java中如何处理时间--Date类
在实际业务中,总会碰到关于时间的问题,例如收集当年的第一季度的数据。第一季度也就是当年的一月一日到三月三十一日。如何处理时间的逻辑,如果用字符串去处理显然不可以,Java有专门的处理时间的类,在此记录一下。Date 类有如下两个构造方法。Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构造方法创建的对象可以获取本地的当前时间。
175 0
Java中如何处理时间--Date类
|
关系型数据库 MySQL Java
Linux系统下java程序获取的时间与系统时间不一致的问题
解决Linux系统下java程序获取的时间与系统时间不一致的问题
1370 0
Linux系统下java程序获取的时间与系统时间不一致的问题
Java&Android获取当前日期、时间、星期几、获取指定格式的日期时间、时间戳工具类包含使用示例
Java&Android获取当前日期、时间、星期几、获取指定格式的日期时间、时间戳工具类包含使用示例
710 0
Java&Android获取当前日期、时间、星期几、获取指定格式的日期时间、时间戳工具类包含使用示例
|
Java
Java中格林尼治时间和时间戳的相互转换
Java中格林尼治时间和时间戳的相互转换
745 0
Java将CST的时间字符串转换成需要的日期格式字符串
Java将CST的时间字符串转换成需要的日期格式字符串