您的位置:首页 > 编程语言 > Java开发

java实现定时关机

2016-12-18 20:46 621 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: