ICU-2672 new sample
X-SVN-Rev: 12550
This commit is contained in:
parent
95e93fa9b4
commit
107ae577f8
24
icu4c/source/samples/datecal/Makefile
Normal file
24
icu4c/source/samples/datecal/Makefile
Normal file
@ -0,0 +1,24 @@
|
||||
# Copyright (c) 2000-2003 IBM, Inc. and others
|
||||
# sample code makefile
|
||||
|
||||
# Usage:
|
||||
# - configure, build, install ICU (make install)
|
||||
# - make sure "icu-config" (in the ICU installed bin directory) is on
|
||||
# the path
|
||||
# - do 'make' in this directory
|
||||
|
||||
#### definitions
|
||||
# Name of your target
|
||||
TARGET=datecal
|
||||
|
||||
# All object files (C or C++)
|
||||
OBJECTS=datecal.o cdatcal.o
|
||||
|
||||
#### rules
|
||||
# Load in standard makefile definitions
|
||||
include ../defs.mk
|
||||
|
||||
LDFLAGS += $(LDFLAGS_USTDIO)
|
||||
|
||||
# the actual rules (this is a simple sample)
|
||||
include ../rules.mk
|
67
icu4c/source/samples/datecal/cal.cpp
Normal file
67
icu4c/source/samples/datecal/cal.cpp
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2002-2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include "unicode/calendar.h"
|
||||
#include "unicode/gregocal.h"
|
||||
#include <stdio.h>
|
||||
|
||||
extern "C" { extern void c_main(); };
|
||||
|
||||
void cpp_main()
|
||||
{
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
puts("C++ sample");
|
||||
GregorianCalendar* gc = new GregorianCalendar(status);
|
||||
if (U_FAILURE(status)) {
|
||||
puts("Couldn't create GregorianCalendar");
|
||||
return;
|
||||
}
|
||||
/* set up the date */
|
||||
gc->set(2000, UCAL_FEBRUARY, 26);
|
||||
gc->set(UCAL_HOUR_OF_DAY, 23);
|
||||
gc->set(UCAL_MINUTE, 0);
|
||||
gc->set(UCAL_SECOND, 0);
|
||||
gc->set(UCAL_MILLISECOND, 0);
|
||||
/* Iterate through the days and print it out. */
|
||||
for (int32_t i = 0; i < 30; i++) {
|
||||
/* print out the date. */
|
||||
/* You should use the DateFormat to properly format it */
|
||||
printf("year: %d, month: %d (%d in the implementation), day: %d\n",
|
||||
gc->get(UCAL_YEAR, status),
|
||||
gc->get(UCAL_MONTH, status) + 1,
|
||||
gc->get(UCAL_MONTH, status),
|
||||
gc->get(UCAL_DATE, status));
|
||||
if (U_FAILURE(status))
|
||||
{
|
||||
puts("Calendar::get failed");
|
||||
return;
|
||||
}
|
||||
/* Add a day to the date */
|
||||
gc->add(UCAL_DATE, 1, status);
|
||||
if (U_FAILURE(status)) {
|
||||
puts("Calendar::add failed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
delete gc;
|
||||
}
|
||||
|
||||
|
||||
/* Creating and using text boundaries */
|
||||
int main( void )
|
||||
{
|
||||
puts("Date-Calendar sample program");
|
||||
|
||||
cpp_main();
|
||||
|
||||
c_main();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
55
icu4c/source/samples/datecal/ccal.c
Normal file
55
icu4c/source/samples/datecal/ccal.c
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
*******************************************************************************
|
||||
*
|
||||
* Copyright (C) 2002-2003, International Business Machines
|
||||
* Corporation and others. All Rights Reserved.
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
#include "unicode/ucal.h"
|
||||
#include <stdio.h>
|
||||
|
||||
void c_main()
|
||||
{
|
||||
puts("----");
|
||||
puts("C Sample");
|
||||
|
||||
UErrorCode status = U_ZERO_ERROR;
|
||||
int32_t i;
|
||||
UCalendar *cal = ucal_open(NULL, -1, NULL, UCAL_GREGORIAN, &status);
|
||||
if (U_FAILURE(status)) {
|
||||
puts("Couldn't create GregorianCalendar");
|
||||
return;
|
||||
}
|
||||
// set up the date
|
||||
ucal_set(cal, UCAL_YEAR, 2000);
|
||||
ucal_set(cal, UCAL_MONTH, UCAL_FEBRUARY); /* FEBRUARY */
|
||||
ucal_set(cal, UCAL_DATE, 26);
|
||||
ucal_set(cal, UCAL_HOUR_OF_DAY, 23);
|
||||
ucal_set(cal, UCAL_MINUTE, 0);
|
||||
ucal_set(cal, UCAL_SECOND, 0);
|
||||
ucal_set(cal, UCAL_MILLISECOND, 0);
|
||||
// Iterate through the days and print it out.
|
||||
for (i = 0; i < 30; i++) {
|
||||
// print out the date.
|
||||
// You should use the udat_* API to properly format it
|
||||
printf("year: %d, month: %d (%d in the implementation), day: %d\n",
|
||||
ucal_get(cal, UCAL_YEAR, &status),
|
||||
ucal_get(cal, UCAL_MONTH, &status) + 1,
|
||||
ucal_get(cal, UCAL_MONTH, &status),
|
||||
ucal_get(cal, UCAL_DATE, &status));
|
||||
if (U_FAILURE(status)) {
|
||||
puts("Calendar::get failed");
|
||||
return;
|
||||
}
|
||||
// Add a day to the date
|
||||
ucal_add(cal, UCAL_DATE, 1, &status);
|
||||
if (U_FAILURE(status))
|
||||
{
|
||||
puts("Calendar::add failed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
ucal_close(cal);
|
||||
}
|
Loading…
Reference in New Issue
Block a user