Calendar类--字段操作相关

本文对比了Java中Calendar类的roll()与add()方法的区别。通过具体案例说明两种方法在调整日期时的不同行为,特别是当需要向前或向后调整特定日期单位时的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

可以使用三种方法更改日历字段:set()add()roll()。其中,set()方法用来设置日历的字段值。本次主要记录一下add()方法和roll()方法。

一、roll()方法

帮助文档中:[roll(f, delta)delta 添加到 f 字段中,但不更改更大的字段。]

我遇到的问题:当前日期为2008-05-01,我想把日历调整为一周前的日期(2008-4-24)。一开始调用的是roll()方法,但得到的结果为:2008-05-29。

代码:calendar.roll(Calendar.WEEK_OF_MONTH, -1);

方法中要滚动的字段为week,所有月份不会发生改变。(但为什么会出现2008-05-29这个日期还不是太清楚)

二、add()方法

帮助文档中:[add(f, delta)delta 添加到 f 字段中。 ]

[ Add 规则 1。调用后 f 字段的值减去调用前 f 字段的值等于 delta,以字段 f 中发生的任何溢出为模。溢出发生在字段值超出其范围时,结果,下一个更大的字段会递增或递减,并将字段值调整回其范围内。]

现在将[ calendar.roll(Calendar.WEEK_OF_MONTH, -1); ]修改为:[ calendar.add(Calendar.WEEK_OF_MONTH, -1); ]

这样就能正确得出:(2008-4-24)这个日期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值