diff -r a3a1ae9acec6 -r da5135c61bad meetingrequest/mrservices/src/cesmrcaluserutil.cpp --- a/meetingrequest/mrservices/src/cesmrcaluserutil.cpp Mon Mar 15 12:39:10 2010 +0200 +++ b/meetingrequest/mrservices/src/cesmrcaluserutil.cpp Wed Mar 31 21:08:33 2010 +0300 @@ -24,6 +24,16 @@ #include #include +namespace { // codescanner::namespace + +// Definition for 0 +const TInt KZero = 0; + +// Definition for number of hours within day +const TInt KHoursInDay = 24; + +} // namespace + // ======== MEMBER FUNCTIONS ======== // --------------------------------------------------------------------------- @@ -195,5 +205,44 @@ return role; } +// --------------------------------------------------------------------------- +// CESMRCalUserUtil::IsAlldayEventL +// --------------------------------------------------------------------------- +// +EXPORT_C TBool CESMRCalUserUtil::IsAlldayEventL() const + { + FUNC_LOG; + + TBool allDayEvent(EFalse); + + TCalTime startTime = iEntry.StartTimeL(); + TCalTime stopTime = iEntry.EndTimeL(); + + TTimeIntervalHours hoursBetweenStartAndEnd; + stopTime.TimeLocalL().HoursFrom( + startTime.TimeLocalL(), + hoursBetweenStartAndEnd ); + + TCalTime::TTimeMode mode = startTime.TimeMode(); + + TInt hoursBetweenStartAndEndAsInt( hoursBetweenStartAndEnd.Int() ); + TInt alldayDivident( hoursBetweenStartAndEndAsInt % KHoursInDay ); + + TDateTime startTimeLocal = startTime.TimeLocalL().DateTime(); + TDateTime stopTimeLocal = stopTime.TimeLocalL().DateTime(); + + if ( hoursBetweenStartAndEndAsInt && KZero == alldayDivident ) + { + if ( startTimeLocal.Hour() == stopTimeLocal.Hour() && + startTimeLocal.Minute() == stopTimeLocal.Minute() && + startTimeLocal.Second() == stopTimeLocal.Second() ) + { + allDayEvent = ETrue; + } + } + + return allDayEvent; + } + // EOF