java日期工具类Calendar

1,获取时间:年,月,日 时:分:秒

Calendar calendar = Calendar.getInstance();
	int year = calendar.get(Calendar.YEAR);
	int month = calendar.get(Calendar.MONTH);
	int day_month = calendar.get(Calendar.DAY_OF_MONTH);
	
	int hour = calendar.get(Calendar.HOUR_OF_DAY);//15
	int minute = calendar.get(Calendar.MINUTE);//16
	int second = calendar.get(Calendar.SECOND);//9

2, 制作定时任务

linux自带的crontab -e命令

#每天23:00  定时关机
#格式:分  时   天         月    周几           具体命令
	  0   23   *          *     *             sudo  poweroff

java代码实现:

import java.util.Calendar;

public class OntimeTest {
    public static void main(String[] args) {
        //间隔一段时间执行:   每隔1分钟: 打印时间戳
        intervalOnTime(0, 1, 0);
        //指定某个时间执行:   每天24:00:00执行计划
        fixedTimeAction(0, 0, 0);
    }

    private static void fixedTimeAction(int destHour, int destMinute, int destSecond) {
        while (true) {
            Calendar calendar = Calendar.getInstance();
        //        int year = calendar.get(Calendar.YEAR);
        //        int month = calendar.get(Calendar.MONTH);
        //        int day_month = calendar.get(Calendar.DAY_OF_MONTH);

            int hour = calendar.get(Calendar.HOUR_OF_DAY);//15
            int minute = calendar.get(Calendar.MINUTE);//16
            int second = calendar.get(Calendar.SECOND);//9

            if (hour == destHour && minute == destMinute && second == destSecond) {
                System.out.println(hour + "," + minute + "," + second);
            }
        }
    }

    public static void intervalOnTime(int destHours, int destMinutes, int destSeconds) {
        Calendar calendar = Calendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);//15
        int minute = calendar.get(Calendar.MINUTE);//16
        int second = calendar.get(Calendar.SECOND);//9

        Calendar calendar2 = null;
        int hour2 = 0;
        int minute2 = 0;
        int second2 = 0;

        while (true) {
            calendar2 = Calendar.getInstance();
            hour2 = calendar2.get(Calendar.HOUR_OF_DAY);
            minute2 = calendar2.get(Calendar.MINUTE);
            second2 = calendar2.get(Calendar.SECOND);

            //计算时间差
            int hourDiff = hour2 - hour;
            int minuteDiff = minute2 - minute;
            int secondDiff = second2 - second;

            if (destHours != 0 && hourDiff == destHours //每小时: 轮询
                    && destMinutes == 0 && destSeconds == 0) {
                System.out.println(hourDiff + " 小时过去了...");
                hour = hour2;
            } else if (destMinutes != 0 && minuteDiff == destMinutes
                    && destHours == 0 && destSeconds == 0) {//每分钟: 轮询
                System.out.println(minuteDiff + " 分钟过去了...");
                minute = minute2;
            } else if (secondDiff != 0 && secondDiff == destSeconds
                    && destHours == 0 && destMinutes == 0) {//每秒钟: 轮询
                System.out.println(secondDiff + " 秒过去了...");
                second = second2;
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/eyeofeagle/article/details/86577872