Imported Upstream version 58.1
[platform/upstream/icu.git] / source / samples / datecal / ccal.c
1 /*
2 *******************************************************************************
3 *
4 *   Copyright (C) 2016 and later: Unicode, Inc. and others.
5 *   License & terms of use: http://www.unicode.org/copyright.html#License
6 *
7 *******************************************************************************
8 *******************************************************************************
9 *
10 *   Copyright (C) 2002-2003, International Business Machines
11 *   Corporation and others.  All Rights Reserved.
12 *
13 *******************************************************************************
14 */
15
16 #include "unicode/ucal.h"
17 #include <stdio.h>
18
19 void c_main()
20 {
21   puts("----");
22   puts("C Sample");
23
24 UErrorCode status = U_ZERO_ERROR;
25 int32_t i;
26 UCalendar *cal = ucal_open(NULL, -1, NULL, UCAL_GREGORIAN, &status);
27 if (U_FAILURE(status)) {
28       puts("Couldn't create GregorianCalendar");
29       return;
30       }
31       /* set up the date */
32       ucal_set(cal, UCAL_YEAR, 2000);
33       ucal_set(cal, UCAL_MONTH, UCAL_FEBRUARY);   /* FEBRUARY */
34       ucal_set(cal, UCAL_DATE, 26);
35       ucal_set(cal, UCAL_HOUR_OF_DAY, 23);
36       ucal_set(cal, UCAL_MINUTE, 0);
37       ucal_set(cal, UCAL_SECOND, 0);
38       ucal_set(cal, UCAL_MILLISECOND, 0);
39       /* Iterate through the days and print it out. */
40       for (i = 0; i < 30; i++) {
41           /* print out the date. */
42           /* You should use the udat_* API to properly format it */
43           printf("year: %d, month: %d (%d in the implementation), day: %d\n",
44               ucal_get(cal, UCAL_YEAR, &status),
45               ucal_get(cal, UCAL_MONTH, &status) + 1,
46               ucal_get(cal, UCAL_MONTH, &status),
47               ucal_get(cal, UCAL_DATE, &status));
48           if (U_FAILURE(status)) {
49           puts("Calendar::get failed");
50           return;
51           }
52           /* Add a day to the date */
53           ucal_add(cal, UCAL_DATE, 1, &status);
54           if (U_FAILURE(status))
55           {
56               puts("Calendar::add failed");
57               return;
58           }
59       }
60       ucal_close(cal);  
61 }