/* ******************************************************************************* * * © 2016 and later: Unicode, Inc. and others. * License & terms of use: http://www.unicode.org/copyright.html#License * ******************************************************************************* ******************************************************************************* * * 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); }