java一周前_下一周和前一周在java中盯着和结束日期

我想得到一周的开始和结束日期

例如

2012-05-06至2012-05-12

2012-05-13至2012-05-19

我写的代码是

currWeekCalender.add(Calendar.WEEK_OF_YEAR, 1);

String dateStart = currWeekCalender.get(Calendar.YEAR) + "-" + addZero((currWeekCalender.get(Calendar.MONTH) + 1)) + "-" + addZero(currWeekCalender.getFirstDayOfWeek());

currWeekCalender.add(Calendar.DAY_OF_MONTH,7);

String dateEnd = currWeekCalender.get(Calendar.YEAR) + "-" + addZero((currWeekCalender.get(Calendar.MONTH) + 1)) + "-" + addZero(currWeekCalender.get(Calendar.DAY_OF_MONTH));

但结果不正确,我也想要前几周的约会.

谢谢

解决方法:

你的问题是getFirstDayOfWeek()返回一周的第一天;例如,周日在美国,周一在法国.它不会返回一个月中的某一天.见javadoc.

本周开始的一个月的第一天是(伪代码)

((7 + (firstDayOfWeek - dayOfWeek(firstOfMonth))) % 7) + 1

如果您愿意,可以将其转换为java.util.Calendar代码,但我建议使用Joda时间代替.

also I want previous weeks date.

可以使用add减去七天

currCalendar.add(Calendar.DAY_OF_MONTH, -7)

这可能涉及下溢,但增加了交易.

add(f, delta)

adds delta to field f. This is equivalent to calling set(f, get(f) + delta) with two adjustments:

Add rule 1. The value of field f after the call minus the value of field f before the call is delta, modulo any overflow that has occurred in field f. Overflow occurs when a field value exceeds its range and, as a result, the next larger field is incremented or decremented and the field value is adjusted back into its range.

标签:dayofweek,java,date,calendar

来源: https://codeday.me/bug/20190726/1538994.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值