diff -r bd7edf625bdd -r 97232defd20e calendarui/editors/inc/KoreanLunarDateUtil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/editors/inc/KoreanLunarDateUtil.h Tue Sep 14 21:17:03 2010 +0300 @@ -0,0 +1,89 @@ +/* +* Copyright (c) 2010 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: +* +*/ + +#if !defined(__KOREANLUNARDATEUTIL_H_) +#define __KOREANLUNARDATEUTIL_H_ + +class MCalenServices; + +// SYSTEM INCLUDES +#include +#include +#include +#include +#include +typedef class TChineseDate TKoreanDate; + + +NONSHARABLE_CLASS( CKoreanLunarDateUtil ) : public CBase + { + public: // public constructors + /** + * Two phased constructors. + */ + static CKoreanLunarDateUtil* NewL(MCalenServices* aServices); + static CKoreanLunarDateUtil* NewLC(MCalenServices* aServices); + + /** + * Destructor. + */ + virtual ~CKoreanLunarDateUtil(); + + public: + + /** + * Gets nearest possible gregorian date from lunar day and month and gregorian reference. + * @param aMonth lunar month + * @param aDay lunar day + * @param aLeap ETrue if leap month, EFalse otherwise + * @param aReference reference gregorian date + * @leave KErrArgument Given date is unconvertible. + * @return TTime struct including the date. + */ + TDateTime GetNearestGregorianDateL( const TInt aMonth, + const TInt aDay, + const TBool aLeap, + const TDateTime& aReference ) const; + + /** + * Gets lunar yearly repeats in gregorian dates. + * @param aRDates repeat date array + * @param aEntryDate gregorian entry date + * @param aMaxRepeats max repeat dates to get + * @param aFloating ETrue if repeat dates should be in floating format, EFalse otherwise + */ + void GetLunarYearlyRepeatsL( RArray& aRDates, + const TDateTime& aEntryDate, + const TBool aFloating ) const; + + private: + /** + * C++ default constructor. + */ + CKoreanLunarDateUtil(MCalenServices* aServices); + /** + * Two phased constructor. + */ + void ConstructL(); + + private: + CKoreanCalConv* iConverter; + MCalenServices* iServices; + }; + + +#endif /* __KOREANLUNARDATEUTIL_H_ */ \ No newline at end of file