Joda计算黑色星期五

楔子

Joda的妙用,计算黑色星期五(在西方,13号正逢星期五,被称为“黑色星期五”。)
Joda是线程安全的

code

/**
 * 计算10年内的黑色星期五
 */
private static void easyCal() {
    MutableDateTime time = new MutableDateTime();
    DateTime plusYears = dateTime.plusYears(10);
    System.out.println(time.toString("yyyy-MM-dd"));
    while (time.isBefore(plusYears)) {
        if (time.dayOfMonth().get() == 13 && time.getDayOfWeek() == 5) {
            // 计算10年内的黑色星期5
            System.out.println("黑色星期5-->" + time.toString(formatYmdHms));
        }
        // 循环一次加一天
        time.addDays`
1);
    }

}
<!--
    需要注意的是,DateTime是一个不可变类型,与String非常类似,
即使是plusXXX、minusXXX等操作,DateTime对象仍然不会变,只是新生
成一个DateTime对象。
    但是,Joda也提供了一个可变类型的日期对象:MutableDateTime
类,这样,日期操作更加方便了。
-->

joda其他例子

日期之间差计算

/**
 * 日期计算
 */
private static void calDate() {
    // 加上100小时是星期几
    dateTime.plusHours(100).dayOfWeek().getAsShortText();
    // 100天后今天
    String string2 = dateTime.plusDays(100).toString(formatYmdHms);
    // 相差天数
    Days.daysBetween(dateTime, new DateTime().plusDays(200));
}

时区

/**
 * 时区
 */
private static void localDemo() {
    DateTime dt = new DateTime();
    // 此时东京时间
    DateTime withZone = dt.withZone(DateTimeZone.forID("Asia/Tokyo"));

    // 计算标准时间
    DateTime timeUTC = dt.withZone(DateTimeZone.UTC);
    System.out.println("当地时间-->" + dt.toString(formatYmdHms));
    System.out.println("标准时间-->" + timeUTC.toString(formatYmdHms));
}

JDK时间Joda时间互转

/**
 * joda与jdk时间转换
 */
private static void convertDateJodaToJkd() {
    DateTime dt = new DateTime();

    // Joda转JDK 的date
    Date date = dt.toDate();
    // jdk 时间转joda
    DateTime time = new DateTime(date);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值