diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_calcon_example_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_calcon_example_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ - - -TB10.1 Example Applications: examples/AppServices/calcon/CalconExample.cpp Source File - - - - -

examples/AppServices/calcon/CalconExample.cpp

00001 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-00002 // All rights reserved.
-00003 // This component and the accompanying materials are made available
-00004 // under the terms of "Eclipse Public License v1.0"
-00005 // which accompanies this distribution, and is available
-00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
-00007 //
-00008 // Initial Contributors:
-00009 // Nokia Corporation - initial contribution.
-00010 //
-00011 // Contributors:
-00012 //
-00013 // Description:
-00014 // This example demonstrates conversion of Chinese lunar calendar dates to Gregorian dates
-00015 // and vice versa
-00016 //
-00017 
-00018 #include <e32std.h>
-00019 #include <e32base.h>
-00020 #include <e32cons.h>
-00021 #include <calendarconverter.h> 
-00022 
-00023 // local definitions 
-00024 static CConsoleBase* console;
-00025 // Pointer to the CChineseCalendarConverter
-00026 static CChineseCalendarConverter*       gCalendarConverter;
-00027 // strings for display
-00028 _LIT(KMsgPressAnyKey,"\nPress any key to continue\n\n");
-00029 _LIT(KConsoleStars,"\n*************************\n");
-00030 
-00031 static void PrintChineseDate(TChineseDate aDate);
-00032 static void PrintGregorianDate(TDateTime aDate);
-00033 
-00034 // Converts a Gregorian date to a Chinese date
-00035 static TChineseDate& GregorianDatesToLunarDatesL(TDateTime aStartDT)
-00036         {
-00037         _LIT(KConsoleMessage,"This function demonstrates conversion of Gregorian to Chinese dates\n");
-00038         console->Printf(KConsoleMessage);
-00039                 
-00040         _LIT(KConsoleMessage1,"\nBefore conversion, the date in Gregorian format is: ");
-00041         console->Printf(KConsoleMessage1);
-00042         PrintGregorianDate(aStartDT);
-00043         
-00044         TInt err1;
-00045         static TChineseDate chineseDate;
-00046         // Convert the earliest date in the convertible range
-00047         TRAP(err1,gCalendarConverter->DateTimeToChineseL(aStartDT,chineseDate));
-00048         if (err1)
-00049                 {
-00050                 _LIT(KConsoleMessage2,"Conversion error");
-00051                 console->Printf(KConsoleMessage2);      
-00052                 }
-00053         else
-00054                 {
-00055                 _LIT(KConsoleMessage3,"\nAfter conversion, the date in Chinese format is:\n");
-00056                 console->Printf(KConsoleMessage3);
-00057                 PrintChineseDate(chineseDate);
-00058         }
-00059         console->Printf(KConsoleStars);
-00060         // Wait for user to press a key before destroying console
-00061         console->Printf(KMsgPressAnyKey);
-00062         console->Getch();
-00063         return chineseDate;
-00064         }
-00065         
-00066 // Converts a Chinese date to a Gregorian date
-00067 static void LunarDatesToGregorianDatesL(TChineseDate aChineseDate)
-00068         {
-00069         _LIT(KConsoleMessage,"This function demonstrates conversion of Chinese to Gregorian dates\n");
-00070         console->Printf(KConsoleMessage);
-00071                 
-00072         TDateTime dateTime;
-00073 
-00074         _LIT(KConsoleMessage1,"\nBefore conversion, the date in Chinese format is:\n");
-00075         console->Printf(KConsoleMessage1);
-00076         PrintChineseDate(aChineseDate);
-00077 
-00078         TInt err;
-00079         // Convert the last date in the convertible range
-00080         TRAP(err,gCalendarConverter->ChineseToDateTimeL(aChineseDate, dateTime));
-00081         if (err)
-00082                 {
-00083                 _LIT(KConsoleMessage2,"Conversion error");
-00084                 console->Printf(KConsoleMessage2);      
-00085                 }
-00086         else
-00087                 {
-00088                 _LIT(KConsoleMessage3,"\nAfter conversion, the date is: ");
-00089                 console->Printf(KConsoleMessage3);
-00090 
-00091                 PrintGregorianDate(dateTime);
-00092         console->Printf(KConsoleStars);
-00093 
-00094                 }
-00095         }
-00096         
-00097 // Prints Chinese date
-00098 static void PrintChineseDate(TChineseDate aDate)        
-00099         {
-00100         TBuf16<32> buffer;
-00101         _LIT(KFormatTxt,"Cycle: %d \n");
-00102         buffer.Format(KFormatTxt,aDate.iCycle);
-00103         console->Printf(buffer);
-00104 
-00105         _LIT(KFormatTxt2,"Year: %d \n");
-00106         buffer.Format(KFormatTxt2,aDate.iYear);
-00107         console->Printf(buffer);
-00108   
-00109         _LIT(KFormatTxt3,"Month: %d \n");
-00110         buffer.Format(KFormatTxt3,aDate.iMonth);
-00111         console->Printf(buffer);
-00112   
-00113         _LIT(KFormatTxt4,"LeapMonth: %d \n");
-00114         buffer.Format(KFormatTxt4,aDate.iLeapMonth);
-00115         console->Printf(buffer);
-00116   
-00117         _LIT(KFormatTxt5,"Day: %d \n");
-00118         buffer.Format(KFormatTxt5,aDate.iDay);
-00119         console->Printf(buffer);
-00120         }
-00121         
-00122 // Prints Gregorian date
-00123 static void PrintGregorianDate(TDateTime aDate)
-00124         {
-00125         TBuf16<32> buffer;
-00126         _LIT(KFormatTxt,"%d%S  %S %d\n");
-00127         TDateSuffix iDateSuffix = TDateSuffix(aDate.Day());
-00128         TMonthName iMonthName = TMonthName(aDate.Month());
-00129         buffer.Format(KFormatTxt,aDate.Day()+1,&iDateSuffix,&iMonthName,aDate.Year());
-00130     console->Printf(buffer);
-00131         }
-00132         
-00133 static void EgCalconL()
-00134         {
-00135         gCalendarConverter = CChineseCalendarConverter::NewL();
-00136         CleanupStack::PushL(gCalendarConverter);
-00137         
-00138         TDateTime startDT;
-00139         TDateTime finishDT;
-00140         
-00141         gCalendarConverter->DateRange(startDT, finishDT);
-00142         
-00143         TChineseDate chineseDate = GregorianDatesToLunarDatesL(startDT);
-00144         LunarDatesToGregorianDatesL(chineseDate);
-00145         
-00146         CleanupStack::PopAndDestroy(gCalendarConverter); 
-00147         }
-00148         
-00149 static void DoExampleL()
-00150     {
-00151         // Create the console to print the messages to. 
-00152         _LIT(KConsoleMessageDisplay, "Calcon Example");
-00153         console = Console::NewL(KConsoleMessageDisplay,TSize(KConsFullScreen,KConsFullScreen));
-00154         CleanupStack::PushL(console);
-00155         console->Printf(KConsoleMessageDisplay);
-00156         console->Printf(KConsoleStars);
-00157 
-00158         TRAPD(err,EgCalconL());
-00159         if (err)
-00160                 {
-00161                 _LIT(KFailed,"\n\nExample failed: leave code=%d");
-00162                 console->Printf(KFailed, err);
-00163                 }
-00164         // wait for user to press a key before destroying console
-00165         console->Printf(KMsgPressAnyKey);
-00166         console->Getch();
-00167     CleanupStack::PopAndDestroy(console);
-00168     }
-00169 
-00170 // Standard entry point function
-00171  TInt E32Main()
-00172         {
-00173         __UHEAP_MARK;
-00174         // Active scheduler required as this is a console app
-00175         CActiveScheduler* scheduler=new CActiveScheduler;
-00176         // If active scheduler has been created, install it.
-00177         if (scheduler)
-00178                 {
-00179                 CActiveScheduler::Install(scheduler); 
-00180                 // Cleanup stack needed
-00181                 CTrapCleanup* cleanup=CTrapCleanup::New();
-00182                 if (cleanup)
-00183                         {
-00184                         
-00185                     TRAP_IGNORE(DoExampleL());
-00186                         delete cleanup;
-00187                         }
-00188                 delete scheduler;
-00189                 }
-00190         __UHEAP_MARKEND;
-00191         return KErrNone;
-00192     }
-00193   
-00194 
-00195 
-

Generated on Thu Jan 21 10:32:55 2010 for TB10.1 Example Applications by  - -doxygen 1.5.3
- -