meetingrequest/mrservices/src/cesmrcaluserutil.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 0 8466d47a6819
--- 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 <calentry.h>
 #include <caluser.h>
 
+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