是否可以从日历中减去时间?
例如
.....
Calendar DueTime = Calendar.getInstance();
Calendar ReminderTime = Calendar.getInstance();
int ReminderMinute = 5;
DueTime.set(DueYear, DueMonth, DueDay, DueHour, DueMinute);
Day = Day - reminderDays ;
Day = Day - (Week*7) ;
Month = Month - reminderMonths ;
Year = Year - reminderYears ;
Hour = Hour - reminderHours ;
Minute= Minute- reminderMinutes;
ReminderTime.set(Year, Month, Day, Hour, Minute );
ReminderTime.add(Calendar.DAY_OF_MONTH , - Day );
ReminderTime.add(Calendar.MONTH , - Month );
ReminderTime.add(Calendar.YEAR , - Year );
ReminderTime.add(Calendar.HOUR , - Hour );
ReminderTime.add(Calendar.MINUTE , - Minute);
<小时/>
如果上述可行,我想知道的另一个问题是...
reminderDays = 60;
那么这也会进入之前的一个月吗?
假设到期日是当月的 31 号,而前一个月有 30 天,那么提醒日是该月的 1 号吗?
<小时/>另一个相关的注释:
我不确定我是否正确,但日历实例是否以毫秒为单位存储时间?
例如1 分钟为 600 毫秒,一小时为 36000 毫秒
所以如果我这样做:
ReminderTime.add(Calendar.HOUR , - 1 );
它所做的就是将 -36000 添加到该日历对象中存储的总时间
如果这是真的,会这样做:
ReminderTime.add(Calendar.DAY_OF_MONTH , - 60 );
结果减去了 51840000 毫秒?或者我需要改变
ReminderTime.add(Calendar.DAY_OF_MONTH , - 60 );
至
ReminderTime.add(Calendar.DAY_OF_YEAR , - 60 );
这将是在我调用之后:
ReminderTime.set(Year, Month, Day, Hour, Minute );
我对上面的期望是,我的 Activity 将计算该日历对象是一年中的哪一天,并从中删除 51840000 毫秒。
<小时/>有人可以帮忙吗?
这里有三个不同的问题,用线分隔
最佳答案
三个问题,两个陈述,您应该能够自己回答。
1)是的,您可以通过添加负数来进行减法,如您所写。
2) 字段进位,就像个位、十位、百位一样。因此,如有必要,DAY_OF_MONTH 减去 60 将会转入上个月或上个月或上一年。它将调整日历 60 天
附注1 分钟不是 60 毫秒! 60 x 1000 = 60,000 毫秒
关于java - 更改日历时间(java.util.Calendar),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9046668/