]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bsddialog/examples_library/calendar.c
Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fb
[FreeBSD/FreeBSD.git] / contrib / bsddialog / examples_library / calendar.c
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 <time.h>
14
15 int main()
16 {
17         int output;
18         unsigned int yy, mm, dd;
19         struct bsddialog_conf conf;
20         time_t cal;
21         struct tm *localtm;
22
23         time(&cal);
24         localtm = localtime(&cal);
25         yy = localtm->tm_year + 1900;
26         mm = localtm->tm_mon + 1;
27         dd = localtm->tm_mday;
28
29         if (bsddialog_init() == BSDDIALOG_ERROR) {
30                 printf("Error: %s\n", bsddialog_geterror());
31                 return (1);
32         }
33         bsddialog_initconf(&conf);
34         conf.title = "calendar";
35         output = bsddialog_calendar(&conf, "Example", 18, 40, &yy, &mm, &dd);
36         bsddialog_end();
37         if (output == BSDDIALOG_ERROR) {
38                 printf("Error: %s\n", bsddialog_geterror());
39                 return (1);
40         }
41
42         printf("Date: %u/%u/%u\n", yy, mm, dd);
43
44         return (0);
45 }