1 /*- 2 * SPDX-License-Identifier: CC0-1.0 3 * 4 * Written in 2022 by Alfonso Sabato Siciliano. 5 * To the extent possible under law, the author has dedicated all copyright 6 * and related and neighboring rights to this software to the public domain 7 * worldwide. This software is distributed without any warranty, see: 8 * <http://creativecommons.org/publicdomain/zero/1.0/>. 9 */ 10 11 #include <bsddialog.h> 12 #include <stdio.h> 13 #include <string.h> 14 #include <time.h> 15 16 int main() 17 { 18 int output; 19 unsigned int yy, mm, dd; 20 struct bsddialog_conf conf; 21 time_t cal; 22 struct tm *localtm; 23 24 time(&cal); 25 localtm = localtime(&cal); 26 yy = localtm->tm_year + 1900; 27 mm = localtm->tm_mon + 1; 28 dd = localtm->tm_mday; 29 30 if (bsddialog_init() == BSDDIALOG_ERROR) { 31 printf("Error: %s\n", bsddialog_geterror()); 32 return (1); 33 } 34 35 bsddialog_initconf(&conf); 36 conf.title = "calendar"; 37 output = bsddialog_calendar(&conf, "Example", 18, 40, &yy, &mm, &dd); 38 39 bsddialog_end(); 40 41 switch (output) { 42 case BSDDIALOG_OK: 43 printf("Date: %u/%u/%u", yy, mm, dd); 44 break; 45 case BSDDIALOG_CANCEL: 46 printf("Cancel"); 47 break; 48 case BSDDIALOG_ERROR: 49 printf("Error: %s", bsddialog_geterror()); 50 break; 51 } 52 printf("\n"); 53 54 return (output); 55 }