6.24(显示当前日期和时间)程序清单2-7显示当前时间。改进这个例子,显示当前的日期和时间。程序清单6-12中的日历例子可以提供一些如何提供如何求年月日的思路
题目
题目描述
6.24(显示当前日期和时间)程序清单2-7显示当前时间。改进这个例子,显示当前的日期和时间。程序清单6-12中的日历例子可以提供一些如何提供如何求年月日的思路
2-7显示当前时间
- 调用System.currentTimeMillis()方法获取1970年1月1日0时0分0秒到现在的毫秒数(如1203183086328毫秒),假设存储在变量totalMilliseconds中
long totalMilliseconds = System.currentTimeMillis(); - 那么 totalMilliseconds/1000=总秒数(假设存储在变量totalSeconds)
- totalSeconds%60得到当前秒数(如1203183068%60=8)
- totalSeconds/60得到总分钟数(假设为totalMinutes)
- totalMinutes%60得到当前分钟数
- totalMinutes/60得到总小时数totalHours
- totalHours%60得到当前小时数
从6-12求年月日的考虑闰年到本题:博主思路
有一个思路是:(这种方法耦合度很高)
- 主方法step1:在这里获取时间(总毫秒数)并调用下面第一个方法
- 主方法step2,求毫秒:求出当前毫秒数并转为总秒数
- 主方法step3,求秒:求出当前秒数并转为总分钟数
- 主方法step4、5:用相同思路求当前分钟数、时数,此时求得总天数并向下调用
- 求从1970年1月1日到今年1月1日的总天数(结合是否闰年判断),此时得到今年年份、从今年1月1日到现在的天数、今年是否为闰年
- 根据以上数据求月份数、日期数
- 单独方法,需要时调用:判断年份是否为闰年
代码
源代码
public class Test6_24_2 {
public static void main(String[] args) {
// 1. 主方法:在这里获取时间(总毫秒数)(获取格林时间)
long totalMilliseconds = System.currentTimeMillis();
// 2. 求毫秒:求出当前毫秒数并转为总秒数,当前毫秒数currentMilliseconds
long currentMilliseconds = totalMilliseconds % 1000;
long totalSeconds = totalMilliseconds / 1000;
// 3. 求秒:求出当前秒数并转为总分钟数,当前秒数cureentSeconds
long currentSeconds = totalSeconds % 60;
long totalMinutes = totalSeconds / 60;
// 4. 用相同思路求当前分钟数(currentMinutes)、时数(currentHours)
long currentMinutes = totalMinutes % 60