本文整理汇总了C++中KDateTime::addDays方法的典型用法代码示例。如果您正苦于以下问题:C++ KDateTime::addDays方法的具体用法?C++ KDateTime::addDays怎么用?C++ KDateTime::addDays使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KDateTime
的用法示例。
在下文中一共展示了KDateTime::addDays方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testRoles
void TodoTest::testRoles()
{
const KDateTime today = KDateTime::currentUtcDateTime();
const KDateTime yesterday = today.addDays(-1);
Todo todo;
todo.setDtStart(today.addDays(-1));
todo.setDtDue(today);
QCOMPARE(todo.dateTime(Incidence::RoleDisplayStart), today);
QCOMPARE(todo.dateTime(Incidence::RoleDisplayEnd), today);
todo.setDtDue(KDateTime());
QCOMPARE(todo.dateTime(Incidence::RoleDisplayStart), yesterday);
QCOMPARE(todo.dateTime(Incidence::RoleDisplayEnd), yesterday);
}
示例2: testSetCompleted
void TodoTest::testSetCompleted()
{
Todo todo1, todo2, todo3;
todo1.setSummary(QStringLiteral("Todo Summary"));
todo2.setSummary(QStringLiteral("Todo Summary"));
todo3.setSummary(QStringLiteral("Todo Summary"));
KDateTime today = KDateTime::currentUtcDateTime();
// due yesterday
KDateTime originalDueDate = today.addDays(-1);
todo1.setDtStart(originalDueDate);
todo1.setDtDue(originalDueDate);
todo1.recurrence()->setDaily(1);
todo1.setCompleted(today);
todo2.setCompleted(true);
todo3.setStatus(Incidence::StatusCompleted);
QVERIFY(originalDueDate != todo1.dtDue());
QVERIFY(!todo1.isCompleted());
QVERIFY(todo2.isCompleted());
QCOMPARE(todo2.status(), Incidence::StatusCompleted);
QVERIFY(todo3.isCompleted());
todo2.setCompleted(false);
QVERIFY(!todo2.isCompleted());
}
示例3: slotUpdateIncidenceStartEnd
void VisualFreeBusyWidget::slotUpdateIncidenceStartEnd( const KDateTime &dtFrom,
const KDateTime &dtTo )
{
mDtStart = dtFrom;
mDtEnd = dtTo;
QDateTime horizonStart = QDateTime( dtFrom.addDays( -15 ).date() );
KDGantt::DateTimeGrid *grid = static_cast<KDGantt::DateTimeGrid*>( mGanttGraphicsView->grid() );
grid->setStartDateTime( horizonStart );
slotCenterOnStart();
mGanttGrid->setStartDateTime( horizonStart );
}
示例4: dumpAlarms
QStringList KOAlarmClient::dumpAlarms()
{
KDateTime start = KDateTime( QDateTime::currentDateTime().date(),
QTime( 0, 0 ), KDateTime::LocalZone );
KDateTime end = start.addDays( 1 ).addSecs( -1 );
QStringList lst;
// Don't translate, this is for debugging purposes.
lst << QString( "AlarmDeamon::dumpAlarms() from " ) + start.toString() + " to " +
end.toString();
QList<Alarm *> alarms = mCalendar->alarms( start, end );
QList<Alarm *>::ConstIterator it;
for ( it = alarms.constBegin(); it != alarms.constEnd(); ++it ) {
Alarm *a = *it;
lst << QString( " " ) + a->parent()->summary() + " (" + a->time().toString() + ')';
}
return lst;
}
示例5: testStatus
void TodoTest::testStatus()
{
KDateTime today = KDateTime::currentUtcDateTime();
KDateTime yesterday = today.addDays(-1);
Todo todo1;
todo1.setDtStart(yesterday);
todo1.setDtDue(today);
todo1.setPercentComplete(50);
QVERIFY(todo1.isInProgress(false));
QVERIFY(!todo1.isNotStarted(false));
QVERIFY(!todo1.isOverdue());
todo1.setPercentComplete(100);
QVERIFY(todo1.isCompleted());
Todo todo2 = todo1;
todo2.setPercentComplete(33);
todo2.setDtDue(KDateTime());
QVERIFY(todo2.isOpenEnded());
}
示例6: insertIncidence
void TimelineItem::insertIncidence( KCal::Incidence *incidence,
const KDateTime & _start, const KDateTime & _end )
{
KDateTime start = incidence->dtStart().toTimeSpec( KOPrefs::instance()->timeSpec() );
KDateTime end = incidence->dtEnd().toTimeSpec( KOPrefs::instance()->timeSpec() );
if ( _start.isValid() ) {
start = _start;
}
if ( _end.isValid() ) {
end = _end;
}
if ( incidence->allDay() ) {
end = end.addDays( 1 );
}
typedef QList<TimelineSubItem*> ItemList;
ItemList list = mItemMap[incidence];
for ( ItemList::ConstIterator it = list.constBegin(); it != list.constEnd(); ++it ) {
if ( KDateTime( (*it)->startTime() ) == start &&
KDateTime( (*it)->endTime() ) == end ) {
return;
}
}
TimelineSubItem * item = new TimelineSubItem( mCalendar, incidence, this );
QColor c1, c2, c3;
colors( c1, c2, c3 );
item->setColors( c1, c2, c3 );
item->setStartTime( start.dateTime() );
item->setOriginalStart( start );
item->setEndTime( end.dateTime() );
mItemMap[incidence].append( item );
}
示例7: pasteIncidence
Incidence::Ptr pasteIncidence( const Incidence::Ptr &incidence,
KDateTime newDateTime,
const QFlags<PasteFlag> &pasteOptions )
{
Incidence::Ptr inc( incidence );
if ( inc ) {
inc = Incidence::Ptr( inc->clone() );
inc->recreate();
}
if ( inc && newDateTime.isValid() ) {
if ( inc->type() == Incidence::TypeEvent ) {
Event::Ptr event = inc.staticCast<Event>();
if ( pasteOptions & FlagPasteAtOriginalTime ) {
// Set date and preserve time and timezone stuff
const QDate date = newDateTime.date();
newDateTime = event->dtStart();
newDateTime.setDate( date );
}
// in seconds
const int durationInSeconds = event->dtStart().secsTo( event->dtEnd() );
const int durationInDays = event->dtStart().daysTo( event->dtEnd() );
event->setDtStart( newDateTime );
if ( newDateTime.isDateOnly() ) {
event->setDtEnd( newDateTime.addDays( durationInDays ) );
} else {
event->setDtEnd( newDateTime.addSecs( durationInSeconds ) );
}
} else if ( inc->type() == Incidence::TypeTodo ) {
Todo::Ptr aTodo = inc.staticCast<Todo>();
const bool pasteAtDtStart = ( pasteOptions & FlagTodosPasteAtDtStart );
if ( pasteOptions & FlagPasteAtOriginalTime ) {
// Set date and preserve time and timezone stuff
const QDate date = newDateTime.date();
newDateTime = pasteAtDtStart ? aTodo->dtStart() : aTodo->dtDue();
newDateTime.setDate( date );
}
if ( pasteAtDtStart ) {
aTodo->setDtStart( newDateTime );
} else {
aTodo->setDtDue( newDateTime );
}
} else if ( inc->type() == Incidence::TypeJournal ) {
if ( pasteOptions & FlagPasteAtOriginalTime ) {
// Set date and preserve time and timezone stuff
const QDate date = newDateTime.date();
newDateTime = inc->dtStart();
newDateTime.setDate( date );
}
inc->setDtStart( newDateTime );
} else {
kDebug() << "Trying to paste unknown incidence of type" << int( inc->type() );
}
}
return inc;
}
示例8: kDebug
//@cond PRIVATE
void FreeBusy::Private::init( const Event::List &eventList,
const KDateTime &start, const KDateTime &end )
{
int extraDays, i, x, duration;
duration = start.daysTo( end );
QDate day;
KDateTime tmpStart;
KDateTime tmpEnd;
// Loops through every event in the calendar
Event::List::ConstIterator it;
for ( it = eventList.constBegin(); it != eventList.constEnd(); ++it ) {
Event::Ptr event = *it;
// If this event is transparent it shouldn't be in the freebusy list.
if ( event->transparency() == Event::Transparent ) {
continue;
}
// The code below can not handle all-day events. Fixing this resulted
// in a lot of duplicated code. Instead, make a copy of the event and
// set the period to the full day(s). This trick works for recurring,
// multiday, and single day all-day events.
Event::Ptr allDayEvent;
if ( event->allDay() ) {
// addDay event. Do the hack
kDebug() << "All-day event";
allDayEvent = Event::Ptr( new Event( *event ) );
// Set the start and end times to be on midnight
KDateTime st = allDayEvent->dtStart();
st.setTime( QTime( 0, 0 ) );
KDateTime nd = allDayEvent->dtEnd();
nd.setTime( QTime( 23, 59, 59, 999 ) );
allDayEvent->setAllDay( false );
allDayEvent->setDtStart( st );
allDayEvent->setDtEnd( nd );
kDebug() << "Use:" << st.toString() << "to" << nd.toString();
// Finally, use this event for the setting below
event = allDayEvent;
}
// This whole for loop is for recurring events, it loops through
// each of the days of the freebusy request
for ( i = 0; i <= duration; ++i ) {
day = start.addDays( i ).date();
tmpStart.setDate( day );
tmpEnd.setDate( day );
if ( event->recurs() ) {
if ( event->isMultiDay() ) {
// FIXME: This doesn't work for sub-daily recurrences or recurrences with
// a different time than the original event.
extraDays = event->dtStart().daysTo( event->dtEnd() );
for ( x = 0; x <= extraDays; ++x ) {
if ( event->recursOn( day.addDays( -x ), start.timeSpec() ) ) {
tmpStart.setDate( day.addDays( -x ) );
tmpStart.setTime( event->dtStart().time() );
tmpEnd = event->duration().end( tmpStart );
addLocalPeriod( q, tmpStart, tmpEnd );
break;
}
}
} else {
if ( event->recursOn( day, start.timeSpec() ) ) {
tmpStart.setTime( event->dtStart().time() );
tmpEnd.setTime( event->dtEnd().time() );
addLocalPeriod ( q, tmpStart, tmpEnd );
}
}
}
}
// Non-recurring events
addLocalPeriod( q, event->dtStart(), event->dtEnd() );
}
q->sortList();
}
示例9: testSerializer_data
void TodoTest::testSerializer_data()
{
QTest::addColumn<KCalCore::Todo::Ptr>("todo");
KDateTime today = KDateTime::currentUtcDateTime();
KDateTime yesterday = today.addDays(-1);
Todo::Ptr todo1 = Todo::Ptr(new Todo());
Todo::Ptr todo2 = Todo::Ptr(new Todo());
Todo::Ptr todo3 = Todo::Ptr(new Todo());
Todo::Ptr todo4 = Todo::Ptr(new Todo());
Todo::Ptr todo5 = Todo::Ptr(new Todo());
Todo::Ptr todo6 = Todo::Ptr(new Todo());
todo1->setSummary(QStringLiteral("Summary"), false);
todo1->setDescription(QStringLiteral("description"), false);
todo1->setCreated(yesterday);
todo1->setRevision(50);
todo1->setDtDue(yesterday);
todo1->setDtStart(today);
todo1->setPercentComplete(50);
todo1->setLocation(QStringLiteral("<b>location</b>"), false);
todo2->setDescription(QStringLiteral("<b>description</b>"), true);
todo2->setSummary(QStringLiteral("<b>Summary2</b>"), true);
todo2->setLocation(QStringLiteral("<b>location</b>"), true);
todo2->setDtDue(yesterday);
todo2->setPercentComplete(100);
todo3->setDtStart(today);
todo3->setPercentComplete(100);
todo3->setCategories(QStringList() << QStringLiteral("a") << QStringLiteral("b") << QStringLiteral("c") << QStringLiteral("d"));
todo3->setResources(QStringList() << QStringLiteral("a") << QStringLiteral("b") << QStringLiteral("c") << QStringLiteral("d"));
todo3->setPriority(5);
QVERIFY(!todo4->dirtyFields().contains(IncidenceBase::FieldRecurrence));
todo4->recurrence()->setDaily(1);
QVERIFY(todo4->dirtyFields().contains(IncidenceBase::FieldRecurrence));
Attachment::Ptr attachment = Attachment::Ptr(new Attachment(QStringLiteral("http://www.kde.org")));
todo4->addAttachment(attachment);
todo5->recurrence()->setDaily(1);
todo5->setCompleted(today);
todo5->setStatus(Incidence::StatusDraft);
todo5->setSecrecy(Incidence::SecrecyPrivate);
todo5->setRelatedTo(QStringLiteral("uid1"), Incidence::RelTypeParent);
todo5->setHasGeo(true);
todo5->setGeoLatitude(40);
todo5->setGeoLongitude(40);
todo5->setOrganizer(QStringLiteral("[email protected]"));
todo6->recurrence()->setDaily(1);
todo6->setCompleted(today);
todo6->setRecurrenceId(yesterday);
todo6->setStatus(Incidence::StatusDraft);
todo6->setSecrecy(Incidence::SecrecyPrivate);
todo6->setRelatedTo(QStringLiteral("uid1"), Incidence::RelTypeParent);
todo6->setHasGeo(true);
todo6->setGeoLatitude(40);
todo6->setGeoLongitude(40);
todo6->setUid(QStringLiteral("uid22"));
todo6->setLastModified(today);
todo6->addContact(QStringLiteral("addContact"));
// Remaining properties tested in testevent.cpp
QTest::newRow("todo1") << todo1;
QTest::newRow("todo2") << todo2;
QTest::newRow("todo3") << todo3;
QTest::newRow("todo4") << todo4;
QTest::newRow("todo5") << todo5;
QTest::newRow("todo6") << todo6;
}
示例10: convertToAppointment
ngwt__Appointment* IncidenceConverter::convertToAppointment( KCal::Event* event )
{
kDebug() <<"IncidenceConverter::convertToAppointment()";
if ( !event )
return 0;
ngwt__Appointment* appointment = soap_new_ngwt__Appointment( soap(), -1 );
appointment->startDate = 0;
appointment->endDate = 0;
appointment->startDay = 0;
appointment->endDay = 0;
appointment->acceptLevel = 0;
appointment->alarm = 0;
appointment->allDayEvent = 0;
appointment->place = 0;
appointment->timezone = 0;
if ( !convertToCalendarItem( event, appointment ) ) {
soap_dealloc( soap(), appointment );
return 0;
}
if ( event->allDay
() ) {
bool *allDayEvent = (bool*)soap_malloc( soap(), 1 );
(*allDayEvent ) = true;
appointment->allDayEvent = allDayEvent;
if ( event->dtStart().isValid() ) {
/* kDebug() << " convertToAppointment() raw start date: " << event->dtStart().toString();*/
KDateTime start = event->dtStart();
start.setTime( QTime( 0, 0, 0 ) );
appointment->startDate = kDateTimeToChar( start, mTimeSpec );
//appointment->startDay = qDateToString( event->dtStart().date()/*.addDays( -1 )*/ );
/* kDebug() << " converted start date: " << appointment->startDate;*/
}
else
kDebug() << " event start date not valid ";
if ( event->hasEndDate() ) {
// kDebug() << " convertToAppointment() raw end date: " << event->dtEnd().toString();
KDateTime end = event->dtEnd();
end = end.addDays( 1 );
end.setTime( QTime( 0, 0, 0 ) );
appointment->endDate = kDateTimeToChar( end, mTimeSpec );
//appointment->endDay = qDateToString( event->dtEnd().date() );
// kDebug() << " converted end date:" << appointment->endDate;
}
else
kDebug() << " event end date not valid ";
} else {
appointment->allDayEvent = 0;
if ( event->dtStart().isValid() )
appointment->startDate = kDateTimeToChar( event->dtStart(), mTimeSpec );
if ( event->hasEndDate() )
appointment->endDate = kDateTimeToChar( event->dtEnd(), mTimeSpec );
}
enum ngwt__AcceptLevel * al = (enum ngwt__AcceptLevel*)soap_malloc(soap(), sizeof(enum ngwt__AcceptLevel));
*al = Busy;
appointment->acceptLevel = al;
KCal::Alarm::List alarms = event->alarms();
if ( !alarms.isEmpty() ) {
ngwt__Alarm* alarm = soap_new_ngwt__Alarm( soap(), -1 );
alarm->__item = alarms.first()->startOffset().asSeconds() * -1;
bool * enabled = (bool *)soap_malloc(soap(), sizeof(bool));
*enabled = alarms.first()->enabled();
alarm->enabled = enabled;
appointment->alarm = alarm;
} else
appointment->alarm = 0;
if ( !event->location().isEmpty() ) {
std::string* location = qStringToString( event->location() );
appointment->place = location;
} else
appointment->place = 0;
appointment->timezone = 0;
return appointment;
}