国际协和时和北京时间的转换

题目要求

第二周编程作业
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。
提醒:要小心跨日的换算。

/*************************************************************
 * author:minx
 * function:utc国际协和时和bjt(北京时间)的换算。
 * relationship:utc=bjt-8
 * version:1.0.0
 * time:2019-5-15
 **************************************************************/
package com.visualworld.example;

import java.util.Scanner;

//必须考虑跨天的运算
public class UtcBtcTime {
    //可能需要辗转相除法
    public static void main(String[] args){
        int UTC=0;
        int BJT=0;

        int B_thousand=0;//千
        int B_hundrend=0;//百
        int B_ten=0;//十
        int B_per=0;//个
        int resultTime = 0;
        Scanner in=new Scanner(System.in);
        System.out.print("请输入BJT:");
        BJT=in.nextInt();
        if (BJT < 0 || BJT > 2359) {
            System.out.println("数据无效,请重新输入!");
            return;

        }
        if (BJT >= 1000)//完整
        {
            B_thousand = BJT / 1000;
            B_hundrend = (BJT - B_thousand * 1000) / 100;
            B_ten = (BJT - (B_thousand * 1000) - (B_hundrend * 100)) / 10;
            B_per = BJT - ((B_thousand * 1000) + (B_hundrend * 100) + (B_ten * 10));
            resultTime = BJT - 8000;
            System.out.println("UTC:" + resultTime);
        } else if (BJT < 1000 && BJT > 800)//有小时
        {
//            B_thousand=0;
            B_hundrend = BJT / 100;
            B_ten = (BJT - (B_hundrend * 100)) / 10;
            B_per = BJT - ((B_hundrend * 100) + (B_ten * 10));
            resultTime = BJT - 800;
            System.out.println("UTC:" + resultTime);
        } else if (BJT < 800 && BJT >= 60) {
            B_thousand = BJT / 1000;
            B_hundrend = (BJT - B_thousand * 1000) / 100;
            B_ten = (BJT - (B_thousand * 1000) - (B_hundrend * 100)) / 10;
            B_per = BJT - ((B_thousand * 1000) + (B_hundrend * 100) + (B_ten * 10));
            resultTime = (24 - (8 - B_hundrend)) * 100 + B_ten * 10 + B_per;
            System.out.println("final time:" + resultTime);
        } else if (BJT < 60 && BJT > 10) {
//            B_thousand=0;
//            B_hundrend=0;
            B_ten = (BJT) / 10;
            B_per = BJT - (B_ten * 10);
            resultTime = BJT - 8;
            System.out.println("UTC:" + resultTime);
        } else {
            B_ten = 0;//保留十位的0
            B_per = BJT;//只有个位
            resultTime = BJT - 8;
            System.out.println("UTC:" + resultTime);
        }
        System.out.println(B_thousand);
        System.out.println(B_hundrend);
        System.out.println(B_ten);
        System.out.println(B_per);
    }

}
//if (10<a<100)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java基础题目 题目主要来自浙江大学翁凯教授的零基础学习Java课程的配套习题。 1. 温度转换 题目内容:写一...
    且自小尧没谁管阅读 1,736评论 0 2
  • 时间换算(5分)题目内容:UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入...
    Jesse1995阅读 1,036评论 1 0
  • 题目内容:UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示B...
    Ming_0612阅读 852评论 0 0
  • 1、时间换算 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入...
    godfrey_88阅读 1,432评论 0 1
  • 此文写于2015年11月 这个季节在国内已经是寒意四起的深秋,然而靠近赤道的新加坡,依旧高温酷暑。热爱的夏季,...
    Miss姚阅读 1,481评论 2 5