| /********************************************************************** | |
| * © 2016 and later: Unicode, Inc. and others. | |
| * License & terms of use: http://www.unicode.org/copyright.html | |
| *********************************************************************** | |
| *********************************************************************** | |
| * COPYRIGHT: | |
| * Copyright (c) 1999-2003, International Business Machines Corporation and | |
| * others. All Rights Reserved. | |
| ***********************************************************************/ | |
| #include "unicode/unistr.h" | |
| #include "unicode/msgfmt.h" | |
| #include "unicode/calendar.h" | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include "util.h" | |
| // The message format pattern. It takes a single argument, an integer, | |
| // and formats it as "no", "one", or a number, using a NumberFormat. | |
| static UnicodeString PATTERN( | |
| "Received {0,choice,0#no arguments|1#one argument|2#{0,number,integer} arguments}" | |
| " on {1,date,long}." | |
| ); | |
| int main(int argc, char **argv) { | |
| UErrorCode status = U_ZERO_ERROR; | |
| UnicodeString str; | |
| FieldPosition pos; | |
| // Create a message format | |
| MessageFormat msg(PATTERN, status); | |
| check(status, "MessageFormat::ct"); | |
| // Create the argument list | |
| Formattable msgArgs[2]; | |
| msgArgs[0].setLong(argc-1); | |
| msgArgs[1].setDate(Calendar::getNow()); | |
| // Format the arguments | |
| msg.format(msgArgs, 2, str, pos, status); | |
| check(status, "MessageFormat::format"); | |
| printf("Message: "); | |
| uprintf(str); | |
| printf("\n"); | |
| printf("Exiting successfully\n"); | |
| return 0; | |
| } |