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

AcWing3416.时间显示——学习笔记

目录

题目

代码

AC结果

思路 

关键步骤


题目

3416. 时间显示 - AcWing题库icon-default.png?t=N176https://www.acwing.com/problem/content/description/3419/


代码

import java.util.Scanner;public class Main {public static void main(String[] args){Scanner input = new Scanner(System.in);long total = input.nextLong();long todayTotal = total % (24 * 60 * 60 * 1000);long hour = todayTotal / (60 * 60 * 1000);long minute = (todayTotal % (60 * 60 * 1000)) / (60 * 1000);long second = (todayTotal % (60 * 1000)) / 1000;System.out.println((hour >= 10 ? hour : "0" + hour) + ":" + (minute >= 10 ? minute : "0" + minute) + ":" + (second >= 10 ? second : "0" + second));}
}

AC结果


思路 

题意就是告诉我们从1970年1月1日00:00:00到当前时间所经过的毫秒数,不需要显示年月日,只需要显示时分秒,而毫秒也是省略不显示。一天有24*60*60*1000毫秒,用总的毫秒数对24*60*60*1000取余就可以得到,当天对应时间共有的毫秒;同理可得,一个小时有60*60*1000毫秒,一分钟有60*1000毫秒,一秒有1000毫秒。最后用三目运算符判断当前数值是否小于两位数,若小于则补前导“0”输出。

关键步骤

step1:求当天的毫秒数,让总毫秒数total对24*60*60*1000取余得到当天毫秒数todayTotal。

(可以理解为“满一天”就不要了)

step1:求“小时”时,求当天毫秒数todayTotal与60*60*1000作商,得到小时数。

(可以理解为“满了若干小时”)

step1:求“分钟”时,让当天毫秒数todayTotal对60*60*1000取余,得到除开用于计算“小时”的毫秒数还剩的毫秒数,用它与60*1000作商,得到分钟数。

step1:求“秒”时,让当天毫秒数todayTotal与60*1000取余,得到的余下的毫秒数除1000求秒数。

(可以理解为“满一分钟”就不要了)

http://www.lryc.cn/news/11594.html

相关文章:

  • 贴吧手机端防删图GIF动态图制作解析
  • iOS接入Google登录
  • 【C语言】大小端字节序问题
  • Linux | 网络通信 | 序列化和反序列化的讲解与实现
  • C#的委托原理刨析and事件原理刨析和两者的比较
  • Redis学习【8】之Redis RDB持久化
  • SpringSecurity认证
  • Socket套接字
  • mysql详解之innoDB
  • 电信运营商的新尝试:探索非通信领域的发展
  • 第07章_单行函数
  • Echarts实现多柱状图重叠重叠效果
  • PHP学习笔记(一谦四益)
  • Jvm -堆对象的划分
  • 2023美赛F题讲解+数据领取
  • 【博客625】keepalived开启garp refresh的重要性
  • nginx防护规则,拦截非法字符,防止SQL注入、防XSS,nginx过滤url访问,屏蔽垃圾蜘蛛,WordPress安全代码篇
  • 【计算机网络】网络层
  • 产品经理知识体系:1.什么是互联网思维?
  • 【数据结构】单链表的接口实现(附图解和源码)
  • TikTok话题量超30亿,这款承载美好记忆的剪贴簿引发讨论
  • 了解Dubbo
  • 2023年前端面试知识点总结(JavaScript篇)
  • jQuery
  • 强化学习基础概念
  • Redis学习【9】之Redis RDB持久化
  • 分析 vant4 源码,学会用 vue3 + ts 开发毫秒级渲染的倒计时组件,真是妙啊
  • 事件驱动型架构
  • 20222023华为OD机试 - 不含 101 的数(Python)
  • 杭州电子科技大学2023年MBA招生考试成绩查询和复查申请的通知