java實現定時關機
阿新 • • 發佈:2019-01-31
public static void main(String[] args) { //定時關機 //顯示當前時間 Calendar c1=Calendar.getInstance(); //建立當前時間的日曆類物件 Date nowDay=c1.getTime(); //獲取當前日期物件 SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); //時間格式化類 System.out.println(sdf.format(nowDay)); //轉化時間格式並輸出 //設定關機時間 Scanner in =new Scanner(System.in); System.out.println("請設定您要關機的時間:"); System.out.print("時:"); int offHour=in.nextInt(); System.out.print("分:"); int offMinute=in.nextInt(); //比較當前時間和關機時間 比較小時部分 如果關機時間小於當前時間 就設定成明天才關機 // 如果關機時間等於當前時間 而關機分鐘數小於當前分鐘數 也設定成明天才關機 int hour=c1.get(Calendar.HOUR_OF_DAY); //獲取當前時間的小時數 int minute=c1.get(Calendar.MINUTE); //獲取當前時間的分鐘數 //建立關機時間的日曆類物件 Calendar c2=Calendar.getInstance(); if(offHour<hour){ c2.add(Calendar.DAY_OF_MONTH,1); }else if(offHour==hour&&offMinute<minute) { c2.add(Calendar.DAY_OF_MONTH, 1); } //設定關機時間的小時部分和分鐘部分 c2.set(Calendar.HOUR_OF_DAY ,offHour); c2.set(Calendar.MINUTE, offMinute); //比較兩個時間的毫秒值 long sub=c2.getTimeInMillis()-c1.getTimeInMillis(); System.out.println("還有"+(sub/1000/60)+"分鐘關機"); System.out.println("是否設定定時關機(y/n)"); String flag=in.next(); if("y".equals(flag)){ System.out.println("倒計時中。。。。。"); new Timer().schedule(new TimerTask(){ public void run(){ try { Runtime.getRuntime().exec("shutdown -s "); } catch (IOException e) { e.printStackTrace(); } } }, sub); } }