当前位置: 首页 > news >正文

【蓝桥杯】历届真题 时间显示(省赛)Java

问题描述

        小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从1970年1月1日O0:00:00到当前时刻经过的毫秒数。

        现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。

        给定一个用整数表示的时间,请将这个时间对应的时分秒输出。

输入格式

        输入一行包含一个整数,表示时间。

输出格式

        输出时分秒表示的当前时间,格式形如HH:MM:SS,其中HH表示时,值为0到23,MM表示分,值为0到59,SS表示秒,值为0到59。时、分、秒不足两位时补前导0。

样例输入1

        46800999

样例输出1

        13:00:00

样例输入2

        1618708103123

样例输出2

        01:08:23

评测用例规模与约定

思路与分析

        该题有两种方法可解:1. 使用Java自带的API进行计算、2. 通过计算毫秒数,将范围确定为一天内,并按照题意忽略毫秒位,计算出其所代表的时间。

         总体来说此题还是较为简单的,方法一主要体现在对Date类及其实例化、时间的输出格式等方面。

        而方法二则较为考察逻辑能力,如何获取到正确的数据范围、如何进行不足位补0的操作,能够有一个明确的思路的话,写代码还是很轻松的。

        来吧,展示!

代码:API

import java.util.Scanner;
import java.sql.Date;
import java.text.SimpleDateFormat;

public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		long time = sc.nextLong();

		//减8小时是因为Date以1970-01-01 08:00:00开始,比题目中要求的时间早8个小时
		time -= 8 * 60 * 60 * 1000;
		
		//格式化输出
		System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date(time)));
	}
}

代码:计算

import java.util.Scanner;

public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		long time = sc.nextLong();

        //分别计算“当天”的时、分、秒
		long HH = time / 1000 / 60 / 60 % 24;
		long MM = time / 1000 / 60 % 60;
		long SS = time / 1000 % 60;

        //通过可变字符串完成题意的不足位补0要求
		StringBuilder sBuilder = new StringBuilder();
		if(HH < 10){
			sBuilder.append("0"+HH+":");
		} else {
			sBuilder.append(""+HH+":");
		}
		
		if(MM < 10){
			sBuilder.append("0"+MM+":");
		} else {
			sBuilder.append(""+MM+":");
		}
		if(SS < 10){
			sBuilder.append("0"+SS);
		} else {
			sBuilder.append(""+SS);
		}
		String str = sBuilder.toString();
		System.out.println(str);
	}
}

总结

        此题还是比较简单的一道题,对思路的要求较低,主要的考察还是面向编程基础。对于API方法不够熟练的朋友也可以使用“暴力”法解出该题。

相关文章:

  • MyBatis 详解 (2) -- 增删改操作
  • 数学计算-C语言实现
  • 【Java寒假打卡】Java基础-类加载器
  • c语言数组复习
  • 为什么我创建的百度百科没有过审?
  • Spring3.*中ASM和JDK8版本冲突问题及解决方案
  • Umi、React框架学习笔记
  • 测试开发 | 专项测试技术初识Hook
  • python2和python3环境安装
  • 目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头
  • 02.指针的进阶
  • windows下Docker部署Flask的教程
  • 【博客589】K8s Topology Spread Constraints
  • 四、template模板
  • 【Java|golang】1813. 句子相似性 III
  • 在linux安装redis
  • 使用react-bmapgl绘制区域并判断是否重叠
  • 总结 62 种在深度学习中的数据增强方式
  • 【BP靶场portswigger-客户端14】点击劫持-5个实验(全)
  • linux备份压缩