本文整理汇总了Java中org.dmfs.rfc5545.DateTime.addDuration方法的典型用法代码示例。如果您正苦于以下问题:Java DateTime.addDuration方法的具体用法?Java DateTime.addDuration怎么用?Java DateTime.addDuration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.dmfs.rfc5545.DateTime
的用法示例。
在下文中一共展示了DateTime.addDuration方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testWithDate
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
@Test
public void testWithDate() throws Exception
{
DateTime start = DateTime.now();
DateTime due = start.addDuration(Duration.parse("P1DT1H"));
assertThat(new InstanceTestData(start, due, absent(), 5),
builds(
withValuesOnly(
containing(TaskContract.Instances.INSTANCE_START, start.getTimestamp()),
containing(TaskContract.Instances.INSTANCE_START_SORTING, start.swapTimeZone(TimeZone.getDefault()).getInstance()),
containing(TaskContract.Instances.INSTANCE_DUE, due.getTimestamp()),
containing(TaskContract.Instances.INSTANCE_DUE_SORTING, due.swapTimeZone(TimeZone.getDefault()).getInstance()),
containing(TaskContract.Instances.INSTANCE_DURATION, due.getTimestamp() - start.getTimestamp()),
withNullValue(TaskContract.Instances.INSTANCE_ORIGINAL_TIME),
containing(TaskContract.Instances.DISTANCE_FROM_CURRENT, 5),
containing(TaskContract.Instances.DTSTART, start.getTimestamp()),
containing(TaskContract.Instances.DUE, due.getTimestamp()),
withNullValue(TaskContract.Instances.ORIGINAL_INSTANCE_TIME),
withNullValue(TaskContract.Instances.DURATION),
withNullValue(TaskContract.Instances.RRULE),
withNullValue(TaskContract.Instances.RDATE),
withNullValue(TaskContract.Instances.EXDATE)
)
));
}
示例2: testWithDateAndOriginalTime
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
@Test
public void testWithDateAndOriginalTime() throws Exception
{
DateTime start = DateTime.now();
DateTime due = start.addDuration(Duration.parse("P1DT1H"));
DateTime original = start.addDuration(Duration.parse("P2DT2H"));
assertThat(new InstanceTestData(start, due, new Present<>(original), 5),
builds(
withValuesOnly(
containing(TaskContract.Instances.INSTANCE_START, start.getTimestamp()),
containing(TaskContract.Instances.INSTANCE_START_SORTING, start.swapTimeZone(TimeZone.getDefault()).getInstance()),
containing(TaskContract.Instances.INSTANCE_DUE, due.getTimestamp()),
containing(TaskContract.Instances.INSTANCE_DUE_SORTING, due.swapTimeZone(TimeZone.getDefault()).getInstance()),
containing(TaskContract.Instances.INSTANCE_DURATION, due.getTimestamp() - start.getTimestamp()),
containing(TaskContract.Instances.INSTANCE_ORIGINAL_TIME, original.getTimestamp()),
containing(TaskContract.Instances.DISTANCE_FROM_CURRENT, 5),
containing(TaskContract.Instances.DTSTART, start.getTimestamp()),
containing(TaskContract.Instances.DUE, due.getTimestamp()),
containing(TaskContract.Instances.ORIGINAL_INSTANCE_TIME, original.getTimestamp()),
withNullValue(TaskContract.Instances.DURATION),
withNullValue(TaskContract.Instances.RRULE),
withNullValue(TaskContract.Instances.RDATE),
withNullValue(TaskContract.Instances.EXDATE)
)
));
}
示例3: testWithStartDateAndOriginalTime
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
@Test
public void testWithStartDateAndOriginalTime() throws Exception
{
DateTime start = DateTime.now();
DateTime original = start.addDuration(Duration.parse("P2DT2H"));
assertThat(new InstanceTestData(new Present<>(start), absent(), new Present<>(original), 5),
builds(
withValuesOnly(
containing(TaskContract.Instances.INSTANCE_START, start.getTimestamp()),
containing(TaskContract.Instances.INSTANCE_START_SORTING, start.swapTimeZone(TimeZone.getDefault()).getInstance()),
withNullValue(TaskContract.Instances.INSTANCE_DUE),
withNullValue(TaskContract.Instances.INSTANCE_DUE_SORTING),
withNullValue(TaskContract.Instances.INSTANCE_DURATION),
containing(TaskContract.Instances.INSTANCE_ORIGINAL_TIME, original.getTimestamp()),
containing(TaskContract.Instances.DISTANCE_FROM_CURRENT, 5),
containing(TaskContract.Instances.DTSTART, start.getTimestamp()),
containing(TaskContract.Instances.ORIGINAL_INSTANCE_TIME, original.getTimestamp()),
withNullValue(TaskContract.Instances.DUE),
withNullValue(TaskContract.Instances.DURATION),
withNullValue(TaskContract.Instances.RRULE),
withNullValue(TaskContract.Instances.RDATE),
withNullValue(TaskContract.Instances.EXDATE)
)
));
}
示例4: testWithDueDateAndOriginalTime
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
@Test
public void testWithDueDateAndOriginalTime() throws Exception
{
DateTime due = DateTime.now();
DateTime original = due.addDuration(Duration.parse("P2DT2H"));
assertThat(new InstanceTestData(absent(), new Present<>(due), new Present<>(original), 5),
builds(
withValuesOnly(
withNullValue(TaskContract.Instances.INSTANCE_START),
withNullValue(TaskContract.Instances.INSTANCE_START_SORTING),
containing(TaskContract.Instances.INSTANCE_DUE, due.getTimestamp()),
containing(TaskContract.Instances.INSTANCE_DUE_SORTING, due.swapTimeZone(TimeZone.getDefault()).getInstance()),
withNullValue(TaskContract.Instances.INSTANCE_DURATION),
containing(TaskContract.Instances.INSTANCE_ORIGINAL_TIME, original.getTimestamp()),
containing(TaskContract.Instances.DISTANCE_FROM_CURRENT, 5),
withNullValue(TaskContract.Instances.DTSTART),
containing(TaskContract.Instances.DUE, due.getTimestamp()),
containing(TaskContract.Instances.ORIGINAL_INSTANCE_TIME, original.getTimestamp()),
withNullValue(TaskContract.Instances.DURATION),
withNullValue(TaskContract.Instances.RRULE),
withNullValue(TaskContract.Instances.RDATE),
withNullValue(TaskContract.Instances.EXDATE)
)
));
}
示例5: test_whenStartAndDueAreProvided_setsThemAndNullsDuration
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
@Test
public void test_whenStartAndDueAreProvided_setsThemAndNullsDuration()
{
DateTime start = DateTime.now();
DateTime due = start.addDuration(new Duration(1, 1, 0));
assertThat(new TimeData(start, due),
builds(
withValuesOnly(
containing(Tasks.DTSTART, start.getTimestamp()),
containing(Tasks.TZ, "UTC"),
containing(Tasks.IS_ALLDAY, 0),
containing(Tasks.DUE, due.getTimestamp()),
withNullValue(Tasks.DURATION),
withNullValue(Tasks.RDATE),
withNullValue(Tasks.RRULE),
withNullValue(Tasks.EXDATE)
)));
}
示例6: test_whenStartHasAllDayFlag_correspondingValueIsOne
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
@Test
public void test_whenStartHasAllDayFlag_correspondingValueIsOne()
{
DateTime start = DateTime.now().toAllDay();
DateTime due = start.addDuration(new Duration(1, 3, 0));
assertThat(new TimeData(start, due),
builds(
withValuesOnly(
containing(Tasks.DTSTART, start.getTimestamp()),
containing(Tasks.TZ, "UTC"),
containing(Tasks.IS_ALLDAY, 1),
containing(Tasks.DUE, due.getTimestamp()),
withNullValue(Tasks.DURATION),
withNullValue(Tasks.RDATE),
withNullValue(Tasks.RRULE),
withNullValue(Tasks.EXDATE)
)));
}
示例7: testInsertTaskWithStartAndDue
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
/**
* Create task with start and due, check datetime values including generated duration.
*/
@Test
public void testInsertTaskWithStartAndDue()
{
RowSnapshot<TaskLists> taskList = new VirtualRowSnapshot<>(new LocalTaskListsTable(mAuthority));
RowSnapshot<Tasks> task = new VirtualRowSnapshot<>(new TaskListScoped(taskList, new TasksTable(mAuthority)));
DateTime start = DateTime.now();
DateTime due = start.addDuration(new Duration(1, 1, 0));
assertThat(new Seq<>(
new Put<>(taskList, new EmptyRowData<TaskLists>()),
new Put<>(task, new TimeData(start, due))
), resultsIn(mClient,
new Assert<>(task, new TimeData(start, due)),
new AssertRelated<>(
new InstanceTable(mAuthority), Instances.TASK_ID, task,
new Composite<Instances>(
new InstanceTestData(
start.shiftTimeZone(TimeZone.getDefault()),
due.shiftTimeZone(TimeZone.getDefault()),
absent(),
0),
new CharSequenceRowData<>(Tasks.TZ, "UTC"))
)));
}
示例8: testInsertTaskWithStartAndDueUpdateStatus
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
/**
* Create task with start and due, check datetime and INSTANCE_STATUS values after updating the status.
*/
@Test
public void testInsertTaskWithStartAndDueUpdateStatus()
{
RowSnapshot<TaskLists> taskList = new VirtualRowSnapshot<>(new LocalTaskListsTable(mAuthority));
RowSnapshot<Tasks> task = new VirtualRowSnapshot<>(new TaskListScoped(taskList, new TasksTable(mAuthority)));
DateTime start = DateTime.now();
DateTime due = start.addDuration(new Duration(1, 1, 0));
assertThat(new Seq<>(
new Put<>(taskList, new EmptyRowData<>()),
new Put<>(task, new TimeData(start, due)),
// update the status of the new task
new Put<>(task, new StatusData(Tasks.STATUS_COMPLETED))
), resultsIn(mClient,
new Assert<>(task, new TimeData(start, due)),
new AssertRelated<>(
new InstanceTable(mAuthority), Instances.TASK_ID, task,
new Composite<Instances>(
new InstanceTestData(
start.shiftTimeZone(TimeZone.getDefault()),
due.shiftTimeZone(TimeZone.getDefault()),
absent(),
-1),
new CharSequenceRowData<>(Tasks.TZ, "UTC"))
)));
}
示例9: testInsertTaskWithStartAndDueMovedForward
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
/**
* Create task with start and due and update it with new values, check datetime values including generated duration.
*/
@Test
public void testInsertTaskWithStartAndDueMovedForward()
{
RowSnapshot<TaskLists> taskList = new VirtualRowSnapshot<>(new LocalTaskListsTable(mAuthority));
RowSnapshot<Tasks> task = new VirtualRowSnapshot<>(new TaskListScoped(taskList, new TasksTable(mAuthority)));
DateTime start = DateTime.now();
DateTime due = start.addDuration(new Duration(1, 1, 0));
Duration duration = new Duration(1, 2, 0);
DateTime startNew = start.addDuration(duration);
DateTime dueNew = due.addDuration(duration);
assertThat(new Seq<>(
new Put<>(taskList, new EmptyRowData<TaskLists>()),
new Put<>(task, new TimeData(start, due)),
new Put<>(task, new TimeData(startNew, dueNew))
), resultsIn(mClient,
new Assert<>(task, new TimeData(startNew, dueNew)),
new AssertRelated<>(
new InstanceTable(mAuthority), Instances.TASK_ID, task,
new Composite<Instances>(
new InstanceTestData(
startNew.shiftTimeZone(TimeZone.getDefault()),
dueNew.shiftTimeZone(TimeZone.getDefault()),
absent(),
0),
new CharSequenceRowData<>(Tasks.TZ, "UTC"))
)));
}
示例10: testInsertTaskWithStartAndDueMovedBackwards
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
/**
* Create task with start and due and update it with new values, check datetime values including generated duration.
*/
@Test
public void testInsertTaskWithStartAndDueMovedBackwards()
{
RowSnapshot<TaskLists> taskList = new VirtualRowSnapshot<>(new LocalTaskListsTable(mAuthority));
RowSnapshot<Tasks> task = new VirtualRowSnapshot<>(new TaskListScoped(taskList, new TasksTable(mAuthority)));
DateTime start = DateTime.now();
DateTime due = start.addDuration(new Duration(1, 1, 0));
Duration duration = new Duration(-1, 2, 0);
DateTime startNew = start.addDuration(duration);
DateTime dueNew = due.addDuration(duration);
assertThat(new Seq<>(
new Put<>(taskList, new EmptyRowData<TaskLists>()),
new Put<>(task, new TimeData(start, due)),
new Put<>(task, new TimeData(startNew, dueNew))
), resultsIn(mClient,
new Assert<>(task, new TimeData(startNew, dueNew)),
new AssertRelated<>(
new InstanceTable(mAuthority), Instances.TASK_ID, task,
new Composite<Instances>(
new InstanceTestData(
startNew.shiftTimeZone(TimeZone.getDefault()),
dueNew.shiftTimeZone(TimeZone.getDefault()),
absent(),
0),
new CharSequenceRowData<>(Tasks.TZ, "UTC"))
)));
}
示例11: testInsertTaskWithStartAndDueAddedAfterwards
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
/**
* Create task without dates and set start and due afterwards, check datetime values including generated duration.
*/
@Test
public void testInsertTaskWithStartAndDueAddedAfterwards()
{
RowSnapshot<TaskLists> taskList = new VirtualRowSnapshot<>(new LocalTaskListsTable(mAuthority));
RowSnapshot<Tasks> task = new VirtualRowSnapshot<>(new TaskListScoped(taskList, new TasksTable(mAuthority)));
DateTime start = DateTime.now();
DateTime due = start.addDuration(new Duration(1, 1, 0));
assertThat(new Seq<>(
new Put<>(taskList, new EmptyRowData<TaskLists>()),
new Put<>(task, new TitleData("Test")),
new Put<>(task, new TimeData(start, due))
), resultsIn(mClient,
new Assert<>(task, new TimeData(start, due)),
new AssertRelated<>(
new InstanceTable(mAuthority), Instances.TASK_ID, task,
new Composite<Instances>(
new InstanceTestData(
start.shiftTimeZone(TimeZone.getDefault()),
due.shiftTimeZone(TimeZone.getDefault()),
absent(),
0),
new CharSequenceRowData<>(Tasks.TZ, "UTC"))
)));
}
示例12: testUpdateDue
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
/**
* Having a task with start and due.
* Update it with different due, check datetime values correct in Tasks and Instances.
*/
@Test
public void testUpdateDue() throws Exception
{
RowSnapshot<TaskLists> taskList = new VirtualRowSnapshot<>(new LocalTaskListsTable(mAuthority));
RowSnapshot<Tasks> task = new VirtualRowSnapshot<>(new TaskListScoped(taskList, new TasksTable(mAuthority)));
OperationsQueue queue = new BasicOperationsQueue(mClient);
DateTime start = DateTime.now();
DateTime due = start.addDuration(new Duration(1, 0, 1));
queue.enqueue(new Seq<>(
new Put<>(taskList, new NameData("list1")),
new Put<>(task, new TimeData(start, due))
));
queue.flush();
DateTime due2 = due.addDuration(new Duration(1, 0, 2));
assertThat(new SingletonIterable<>(
new Put<>(task, new TimeData(start, due2))
), resultsIn(queue,
new Assert<>(task, new TimeData(start, due2)),
new AssertRelated<>(
new InstanceTable(mAuthority), Instances.TASK_ID, task,
new Composite<Instances>(
new InstanceTestData(
start.shiftTimeZone(TimeZone.getDefault()),
due2.shiftTimeZone(TimeZone.getDefault()),
absent(),
0),
new CharSequenceRowData<>(Tasks.TZ, "UTC"))
)));
}
示例13: generateInstanceValues
import org.dmfs.rfc5545.DateTime; //导入方法依赖的package包/类
/**
* Create new {@link ContentValues} for insertion into the instances table.
*
* @param task
* The {@link TaskAdapter} of the task that's about to be inserted.
* @return {@link ContentValues} of the instance of this task.
*/
private ContentValues generateInstanceValues(TaskAdapter task)
{
ContentValues instanceValues = new ContentValues();
// get the relevant values from values
DateTime dtstart = task.valueOf(TaskAdapter.DTSTART);
DateTime due = task.valueOf(TaskAdapter.DUE);
Duration duration = task.valueOf(TaskAdapter.DURATION);
TimeZone localTz = TimeZone.getDefault();
if (dtstart != null)
{
// copy dtstart as is
instanceValues.put(Instances.INSTANCE_START, dtstart.getTimestamp());
instanceValues.put(Instances.INSTANCE_START_SORTING, dtstart.isAllDay() ? dtstart.getInstance() : dtstart.shiftTimeZone(localTz).getInstance());
}
else
{
instanceValues.putNull(Instances.INSTANCE_START);
instanceValues.putNull(Instances.INSTANCE_START_SORTING);
}
if (due != null)
{
// copy due and calculate the actual duration, if any
instanceValues.put(Instances.INSTANCE_DUE, due.getTimestamp());
instanceValues.put(Instances.INSTANCE_DUE_SORTING, due.isAllDay() ? due.getInstance() : due.shiftTimeZone(localTz).getInstance());
if (dtstart != null)
{
instanceValues.put(Instances.INSTANCE_DURATION, due.getTimestamp() - dtstart.getTimestamp());
}
else
{
instanceValues.putNull(Instances.INSTANCE_DURATION);
}
}
else if (duration != null)
{
if (dtstart != null)
{
// calculate the actual due value from dtstart and the duration string
due = dtstart.addDuration(duration);
instanceValues.put(Instances.INSTANCE_DUE, due.getTimestamp());
instanceValues.put(Instances.INSTANCE_DUE_SORTING, due.isAllDay() ? due.getInstance() : due.shiftTimeZone(localTz).getInstance());
instanceValues.put(Instances.INSTANCE_DURATION, due.getTimestamp() - dtstart.getTimestamp());
}
else
{
// this case should be filtered by TaskValidatorProcessor, since setting a DURATION without DTSTART is invalid
instanceValues.putNull(Instances.INSTANCE_DURATION);
instanceValues.putNull(Instances.INSTANCE_DUE);
instanceValues.putNull(Instances.INSTANCE_DUE_SORTING);
}
}
else
{
instanceValues.putNull(Instances.INSTANCE_DURATION);
instanceValues.putNull(Instances.INSTANCE_DUE);
instanceValues.putNull(Instances.INSTANCE_DUE_SORTING);
}
return instanceValues;
}