Java 实现倒计时功能(由秒计算天、小时、分钟、秒)

2025-05-29 0 85

有时候会要求实现这样一个需求:

Java 实现倒计时功能(由秒计算天、小时、分钟、秒)

天、小时、分钟、秒的数值都是隔开的,服务器端只返回一个时间戳长度。

以下就是我的实现方案,力求减少对象生成、减小计算量:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111
import java.util.Timer;

import java.util.TimerTask;

public class CountDownUtils {

private static long day = 0;

private static long hour = 0;

private static long minute = 0;

private static long second = 0;

private static boolean dayNotAlready = false;

private static boolean hourNotAlready = false;

private static boolean minuteNotAlready = false;

private static boolean secondNotAlready = false;

public static void main(String[] args) {

long totalSeconds = 60 * 60 * 24 * 34 + 21;

initData(totalSeconds);

new Timer().schedule(new TimerTask() {

public void run() {

if (secondNotAlready) {

startCount();

} else {

cancel();

}

}

}, 0, 1000);

}

/**

* 初始化赋值

*

* @param totalSeconds

*/

private static void initData(long totalSeconds) {

resetData();

if (totalSeconds > 0) {

secondNotAlready = true;

second = totalSeconds;

if (second >= 60) {

minuteNotAlready = true;

minute = second / 60;

second = second % 60;

if (minute >= 60) {

hourNotAlready = true;

hour = minute / 60;

minute = minute % 60;

if (hour > 24) {

dayNotAlready = true;

day = hour / 24;

hour = hour % 24;

}

}

}

}

System.out.println("初始格式化后——>" + day + "天" + hour + "小时" + minute

+ "分钟" + second + "秒");

}

private static void resetData() {

day = 0;

hour = 0;

minute = 0;

second = 0;

dayNotAlready = false;

hourNotAlready = false;

minuteNotAlready = false;

secondNotAlready = false;

}

/**

* 计算各个值的变动

*

*/

public static void startCount() {

if (secondNotAlready) {

if (second > 0) {

second--;

if (second == 0 && !minuteNotAlready) {

secondNotAlready = false;

}

} else {

if (minuteNotAlready) {

if (minute > 0) {

minute--;

second = 59;

if (minute == 0 && !hourNotAlready) {

minuteNotAlready = false;

}

} else {

if (hourNotAlready) {

if (hour > 0) {

hour--;

minute = 59;

second = 59;

if (hour == 0 && !dayNotAlready) {

hourNotAlready = false;

}

} else {

if (dayNotAlready) {

day--;

hour = 23;

minute = 59;

second = 59;

if (day == 0) {

dayNotAlready = false;

}

}

}

}

}

}

}

}

System.out.println("距离截止日期还有——>" + day + "天" + hour + "小时" + minute

+ "分钟" + second + "秒");

}

}

总结

以上所述是小编给大家介绍的Java 实现倒计时功能(由秒计算天、小时、分钟、秒),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:http://blog.csdn.net/ganshenml/article/details/79109782

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java 实现倒计时功能(由秒计算天、小时、分钟、秒) https://www.kuaiidc.com/112825.html

相关文章

发表评论
暂无评论