Java定时关机程序(Calendar,Timer)

来源:互联网 发布:javascript实例300下载 编辑:程序博客网 时间:2024/05/16 00:52
  1. import java.io.IOException;  
  2. import java.text.SimpleDateFormat;  
  3. import java.util.Calendar;  
  4. import java.util.Date;  
  5. import java.util.Scanner;  
  6. import java.util.Timer;  
  7. import java.util.TimerTask;  
  8.   
  9.   
  10. public class ShutDown {  
  11.     /* 转换成毫秒数 */  
  12.     public static int getTimemills(int hours, int min) {  
  13.         return (hours * 60 * 60 + min * 60) * 1000;  
  14.     }  
  15.   
  16.   
  17.     public static void main(String[] args) {  
  18.         Calendar c = Calendar.getInstance();  
  19.         Date d = c.getTime();  
  20.   
  21.   
  22.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");  
  23.   
  24.   
  25.         System.out.println("当前时间:" + sdf.format(d));  
  26.         System.out.println("请输入定时关机睡觉时间:");  
  27.         Scanner input = new Scanner(System.in);  
  28.         System.out.println("时:");  
  29.         int hours = input.nextInt();  
  30.         System.out.println("分:");  
  31.         int min = input.nextInt();  
  32.   
  33.   
  34.         int nowHour = c.get(c.HOUR_OF_DAY);  
  35.         int nowMin = c.get(c.MINUTE);  
  36.         if (hours < nowHour) {  
  37.             hours += 24;  
  38.         }  
  39.   
  40.   
  41.         int pretime = ShutDown.getTimemills(hours, min);  
  42.   
  43.   
  44.         int nowtime = ShutDown.getTimemills(nowHour, nowMin);  
  45.   
  46.   
  47.         int exectime = pretime - nowtime;  
  48.         System.out.println((exectime / 1000 / 60) + "分钟后准备关机");  
  49.   
  50.   
  51.         System.out.println("是否设置定时关机?(是/否)");  
  52.         String flag = input.next();  
  53.         if (flag.equals("是")) {  
  54.             System.out.println("准备关机中。。。");  
  55.             new Timer().schedule(new TimerTask() {  
  56.   
  57.   
  58.                 @Override  
  59.                 public void run() {  
  60.                     try {  
  61.   
  62.   
  63.                         Runtime.getRuntime().exec("shutdown -s");  
  64.                     } catch (IOException e) {  
  65.                         e.printStackTrace();  
  66.                     }  
  67.   
  68.   
  69.                 }  
  70.             }, exectime);  
  71.   
  72.   
  73.         } else {  
  74.             System.out.println("退出系统");  
  75.         }  
  76.   
  77.   
  78.     }  
  79. }  
   通过这个例子, 我进一步回顾了Calender日历类的用法。和学习了Timer 定时器的功能。也是属于线程范畴之内。
0 0
原创粉丝点击