Java写一个简单的倒计时算法

发布于 2022-11-30  90 次阅读


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class JavaTime {
	public static void main(String[] args) throws InterruptedException, ParseException {
		Scanner but = new Scanner(System.in);//创建一个键盘输入类
		System.out.println("请输入VIP天数:");
		long vip_date = but.nextLong();//获取用户输入的天数
		if(vip_date<=0) { //判断天数是否小于0
			System.out.println("输入错误!");
		} else {
			System.out.println("您输入的天数为:" + vip_date + "天");
			SimpleDateFormat Date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置时间格式
			long vip_Time = System.currentTimeMillis();//获取当前系统时间戳
			long vip_date_time = (vip_date*(60*60*24))*1000;//获取输入天数的 时间戳
			long vip_Time_ok = vip_Time + vip_date_time;//计算VIP到期时间戳
			String vip_out_Date = Date.format(vip_Time_ok);//将到期时间转换为Date格式
			Thread.sleep(1000);
			System.out.println("您的VIP到期时间为:" + vip_out_Date);
			Thread.sleep(2000);
			System.out.println("即将为您计算您的VIP剩余时间:");
			Thread.sleep(2000);
			while(true) {
				long Time = System.currentTimeMillis(); //在循环语句内重复获取当前系统时间戳
				long data_Time = Date.parse(vip_out_Date).getTime();//到期时间转换为Time格式的时间戳
				long data_out_Time = (data_Time - Time)/1000;//将(毫秒)的时间戳转换为(秒)
				long data_D_Date = (data_out_Time / (60*60*24));//计算剩余天数
				long data_D_Time = (data_out_Time - data_D_Date * (60*60*24));//计算总天数的时间戳
				long data_H_Date = data_D_Time / 3600;//计算剩余小时
				long data_H_Time = ((data_out_Time - data_D_Date * (60*60*24)) - (data_H_Date * 3600));//计算总小时的时间戳
				long data_m_Date = (data_H_Time / 60);//计算剩余分钟数
				long data_s_Time = ((data_out_Time - data_D_Date * (60*60*24)) - (data_H_Date * 3600) - (data_m_Date * 60));//计算总分钟数的时间戳
				long data_s_Date = data_s_Time;//将剩余的秒数赋值
				//将剩余结果输出
				System.out.println("VIP剩余"+data_D_Date + "天" + data_H_Date +"小时"+data_m_Date+"分钟"+data_s_Date+"秒 -- 到期时间:" + vip_out_Date);
				Thread.sleep(1000);
			}
		}
		
	}

}
最后更新于 2022-11-30