Java Calendar使用指南

Java Calendar使用指南

@(JAVA)[java]

完整代码请见:https://github.com/lujinhong/lujinhong-commons/tree/master/lujinhong-commons-java/src/main/java/com/lujinhong/commons/java/calendar

1、某个日期的前后多少天是什么日期

//计算某个日期n天前后的日期,并指定打印格式。正值表示向后计算,负数表示向前计算。
public static String getBeforeOrAfterDay(String startDay, int dayCount) throws ParseException {
    SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");

    Calendar calendar = Calendar.getInstance();
    Date date = sf.parse(startDay);
    calendar.setTime(date);
    calendar.add(calendar.DATE, dayCount);

    Date day = calendar.getTime();
    String returnDay = sf.format(day);
    return returnDay;
}

2、计算某个日期过去N天所有日期的集合

public static String[] getLastDays(String day, int dayCount) throws ParseException {
    String[] days = new String[dayCount];
    for (int i = 0; i < dayCount; i++) {
        days[i] = getBeforeOrAfterDay(day, -i);
    }
    return days;
}

3、判断某个日期是星期几

public static int getWeekDay(String day) throws ParseException {
    SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
    Calendar calendar = Calendar.getInstance();
    Date date = sf.parse(day);
    calendar.setTime(date);
    //注意1:星期天,2:星期一.....7:星期六
    return calendar.get(Calendar.DAY_OF_WEEK);
}

4、判断是否周末

//判断某个日期是否工作日,星期六及星期天为非工作日,其余为工作日。返回值1:工作日,0:休息日。
public static String getWorkDay(String day){
    int weekDay = 0;
    try {
        weekDay = getWeekDay(day);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    if (weekDay == Calendar.SATURDAY || weekDay == Calendar.SUNDAY) {
        return "0";
    } else {
        return "1";
    }
}

5、判断是否白天

//判断某个时间是否工作时间。10:00~17:00为工作时间,21:00~06:00为休息时间。输入值为小时。返回值1:工作时间,0:休息时间,-1:其它时间。
public static String getWorkTime(String time){
    int hour = Integer.parseInt(time);
    if(hour>=10 && hour<=16){
        return "1";
    }else if((hour>=0 && hour<=5) || (hour>=21 && hour<=23)){
        return "0";
    }else {
        return "-1";
    }
}

6、打印当前时间

public static void  printCurrentTime(){
    System.out.println(Calendar.getInstance().getTime());//Thu Feb 16 18:55:56 CST 2017

}
public static void main(String[] args) throws ParseException {
    System.out.println(getBeforeOrAfterDay("20170201", -1));
    System.out.println(getWeekDay("20170216"));
    System.out.println(Arrays.toString(getLastDays("20170216", 30)));
    printCurrentTime();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值