diff -r 6757f1e2efd2 -r 5b858729772b devicediagnostics/devdiagapp/src/devdiagutil.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/devicediagnostics/devdiagapp/src/devdiagutil.cpp Wed Sep 01 12:31:32 2010 +0100 @@ -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 +#include +#include +#include +#include + + +#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() ); + } + +