用Java编写简单的定时关机程序(Calendar,Timer)

    一般我用自己的笔记本共享wifi, ?<我没有用WIFI精灵>手工配置。

   有一次睡觉前我玩手机,但是不能马上关笔记本,因为会断网,你会说我傻逼,现在很多工具有定时关机的了。 但是我真的不知道, 于是,我想到了用java写一个小程序,用来定时关机,

  

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;


public class ShutDown {
	/* 转换成毫秒数 */
	public static int getTimemills(int hours, int min) {
		return (hours * 60 * 60 + min * 60) * 1000;
	}


	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
		Date d = c.getTime();


		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");


		System.out.println("当前时间:" + sdf.format(d));
		System.out.println("请输入定时关机睡觉时间:");
		Scanner input = new Scanner(System.in);
		System.out.println("时:");
		int hours = input.nextInt();
		System.out.println("分:");
		int min = input.nextInt();


		int nowHour = c.get(c.HOUR_OF_DAY);
		int nowMin = c.get(c.MINUTE);
		if (hours < nowHour) {
			hours += 24;
		}


		int pretime = ShutDown.getTimemills(hours, min);


		int nowtime = ShutDown.getTimemills(nowHour, nowMin);


		int exectime = pretime - nowtime;
		System.out.println((exectime / 1000 / 60) + "分钟后准备关机");


		System.out.println("是否设置定时关机?(是/否)");
		String flag = input.next();
		if (flag.equals("是")) {
			System.out.println("准备关机中。。。");
			new Timer().schedule(new TimerTask() {


				@Override
				public void run() {
					try {


						Runtime.getRuntime().exec("shutdown -s");
					} catch (IOException e) {
						e.printStackTrace();
					}


				}
			}, exectime);


		} else {
			System.out.println("退出系统");
		}


	}
}
   通过这个例子, 我进一步回顾了Calender日历类的用法。和学习了Timer 定时器的功能。也是属于线程范畴之内。

  

你可能感兴趣的:(Java基础)