java实现定时关机

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36369910/article/details/53729677
	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);
		}
	}

展开阅读全文

没有更多推荐了,返回首页