devicediagnostics/devdiagapp/src/devdiagutil.cpp
changeset 0 3ce708148e4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicediagnostics/devdiagapp/src/devdiagutil.cpp	Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,130 @@
+/*
+* Copyright (c) 2007-2007 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Utility classes.
+*
+*/
+
+
+
+// INCLUDES
+#include <eikenv.h>
+#include <bautils.h>
+#include <collate.h>
+#include <StringLoader.h>
+#include <avkon.rsg>
+
+
+#include "devdiagutil.h"
+
+
+
+/*****************************************************************************
+ * class TDevDiagUtil
+ *****************************************************************************/
+
+
+
+
+// -----------------------------------------------------------------------------
+// ConvertUniversalToHomeTime
+// -----------------------------------------------------------------------------
+//
+TTime TDevDiagUtil::ConvertUniversalToHomeTime( const TTime& aUniversalTime )
+    {
+    TTime time( aUniversalTime );   // time stores UTC time.
+
+    TLocale locale;
+    TTimeIntervalSeconds universalTimeOffset( locale.UniversalTimeOffset() );
+    
+    // Add locale's universal time offset to universal time.
+    time += universalTimeOffset;    // time stores Local Time.
+
+    // If home daylight saving in effect, add one hour offset.
+    if ( locale.QueryHomeHasDaylightSavingOn() )
+        {
+        TTimeIntervalHours daylightSaving(1);
+        time += daylightSaving;
+        }
+
+    return time;
+    }
+
+// -----------------------------------------------------------------------------
+// IsToDay
+// -----------------------------------------------------------------------------
+//
+TBool TDevDiagUtil::IsToday(TTime aTime)
+	{	
+	TTime now;
+	now.UniversalTime();
+	TInt day1 = now.DayNoInYear();
+	TInt day2 = aTime.DayNoInYear();
+	TTimeIntervalDays daysBetween = now.DaysFrom( aTime );
+	
+	if ( day1 != day2 )
+		{
+		return EFalse;
+		}
+		
+	if ( daysBetween.Int() > 0 )
+		{
+		return EFalse;
+		}
+
+	return ETrue; 
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDevDiagUtil::GetDateTextL (not done today)
+// -----------------------------------------------------------------------------
+//
+void TDevDiagUtil::GetDateTextL(TDes& aText, TTime aDateTime)
+	{
+	TTime homeTime = ConvertUniversalToHomeTime( aDateTime );
+	HBufC* hBuf = StringLoader::LoadLC( R_QTN_DATE_USUAL_WITH_ZERO );
+    homeTime.FormatL( aText, *hBuf );
+    CleanupStack::PopAndDestroy( hBuf );
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDevDiagUtil::GetTimeTextL (done today)
+// -----------------------------------------------------------------------------
+//
+void TDevDiagUtil::GetTimeTextL( TDes& aText, TTime aDateTime )
+	{
+	TTime homeTime = ConvertUniversalToHomeTime( aDateTime );
+	HBufC* hBuf = StringLoader::LoadLC( R_QTN_TIME_USUAL_WITH_ZERO );
+    homeTime.FormatL( aText, *hBuf );
+    CleanupStack::PopAndDestroy( hBuf );
+	}
+
+
+// -----------------------------------------------------------------------------
+// TDevDiagUtil::GetDateTimeTextL
+// -----------------------------------------------------------------------------
+//
+void TDevDiagUtil::GetDateTimeTextL( TDes& aText, TTime aDateTime )
+	{
+	TDateTime dt = aDateTime.DateTime();
+	aText.Format(_L("%02d.%02d.%04d %02d:%02d:%02d"), dt.Day()+1,
+	                                                  dt.Month()+1,
+	                                                  dt.Year(),
+	                                                  dt.Hour(),
+	                                                  dt.Minute(),
+	                                                  dt.Second() );
+	}
+
+