控制上网!!!(版本之1.0)

控制上网! 控制上网!(放到开机启动项中)

 

 

package com.sxz.timecontroal;

import java.util.Calendar;

/**
 * @author sxz  2012/01/28
 */
public class TimeControal implements Runnable {
    
    private static int countFiveMinute = 0;
    
    /**
     * 程序每次检查的间隔时间设置为5分钟(300000)。
     */
    private static final int TIME_BETWEEN_CHECK = 300000;
    
    /**
     * 程序最多检查的次数( 次数(36) * 时间间隔 = 限定开机时间 )。
     */
    private static final int MAX_CHECK_COUNT = 36;
    
    /**
     * 线程
     */
    public void run() {
        
        try {
            // 控制1:超过当前时间22:30
            if(TimeControal.nowTime()){
                // 关机
                TimeControal.shutdown();
            }
            
            // 每隔5分钟再检查一次
            Thread.sleep(TIME_BETWEEN_CHECK);
            
            // 控制2:开机后时间超过3个小时
            if (TimeControal.startedTime()){
                // 关机
                TimeControal.shutdown();
            }
        
        } catch (InterruptedException e) {
            
            e.printStackTrace();
        }
        
    }
    
    /**
     *  
     * 当前时间判断,超过10:30关机
     * 
     * 超过限定时间,返回ture
     * 
     */
    public static boolean nowTime(){
        
        // 是否超过限定时间,判定flag
        boolean flag = false;
        
        Calendar date = Calendar.getInstance();
        // 设置当前时间。
        date.setTimeInMillis(System.currentTimeMillis());
        
        if(date.get(Calendar.HOUR_OF_DAY) >= 23 || date.get(Calendar.HOUR_OF_DAY) < 6){
            flag = true;
        }
        
        if(date.get(Calendar.HOUR_OF_DAY) == 22 && date.get(Calendar.MINUTE) > 30){
            flag = true;
        }
        
        return flag;
    }
    
    /**
     *  
     * 开机后时间是否超过3个小时判定。
     * 
     * 如果开机后达到3个小时,返回ture
     * 
     */
    public static boolean startedTime(){
        
        // 是否达到3个小时,判定flag
        boolean flag = false;
        
            countFiveMinute ++;
        
        // 有36次5分钟的计时,表明已经3个小时了。
        if(countFiveMinute >= MAX_CHECK_COUNT){
            flag = true;
        }
        
        return flag;
    }
    
    
    /**
     * 1分钟内关机
     */
    public static void shutdown(){
        try { 

            // 60 秒内自动关机
            Process process = Runtime.getRuntime().
                exec("shutdown -s -t 60"); 
         
            } catch (Exception e) { 
            e.printStackTrace(); 
          }
    }
}



 

主函数

 

 

package com.sxz.timecontroal;

/**
 * @author sxz 2012/01/28
 */
public class MainTimeControal {

	/**
	 * 时间控制
	 */
	public static void main(String[] args) {
		
		TimeControal timeContraol = new TimeControal();
		
		Thread thread = new Thread(timeContraol);
		
		while (true) {
			
			// 使程序一直处于运行状态
			thread.run();
			
		}
	}
}


注意:使用Eclipse导出jar文件时,不要忘了选主函数~

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值