1
/* Processed by ecpg (regression mode) */
2
/* These include files are added by the preprocessor */
6
/* Needed for informix compatibility */
7
#include <ecpg_informix.h>
8
/* End of automatic include section */
9
#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
11
#line 1 "rfmtdate.pgc"
14
#include <pgtypes_error.h>
18
* This file tests various forms of date-input/output by means of
19
* rfmtdate / rdefmtdate / rstrdate
24
check_return(int ret);
27
date_test_strdate(char *input)
34
r = rstrdate(input, &d);
38
q = rdatestr(d, dbuf);
42
printf("date %d: %s\n", i++, dbuf);
52
date_test_defmt(char *fmt, char *input)
59
r = rdefmtdate(&d, fmt, input);
63
q = rdatestr(d, dbuf);
67
printf("date %d: %s\n", i++, dbuf);
77
date_test_fmt(date d, char *fmt)
83
r = rfmtdate(d, fmt, buf);
88
printf("date: %d: %s\n", i++, buf);
95
short mdy[3] = { 11, 23, 1959 };
100
ECPGdebug(1, stderr);
102
r = rmdyjul(mdy, &d);
103
printf("create: r: %d\n", r);
107
printf("date: %s\n", dbuf);
110
/* input mask is mmddyyyy */
111
date_test_strdate("12031994");
112
date_test_strdate("9.6.1994");
114
date_test_fmt(d, "mmddyy");
115
date_test_fmt(d, "ddmmyy");
116
date_test_fmt(d, "yymmdd");
117
date_test_fmt(d, "yy/mm/dd");
118
date_test_fmt(d, "yy mm dd");
119
date_test_fmt(d, "yy.mm.dd");
120
date_test_fmt(d, ".mm.yyyy.dd.");
121
date_test_fmt(d, "mmm. dd, yyyy");
122
date_test_fmt(d, "mmm dd yyyy");
123
date_test_fmt(d, "yyyy dd mm");
124
date_test_fmt(d, "ddd, mmm. dd, yyyy");
125
date_test_fmt(d, "(ddd) mmm. dd, yyyy");
127
date_test_defmt("ddmmyy", "21-2-54");
128
date_test_defmt("ddmmyy", "2-12-54");
129
date_test_defmt("ddmmyy", "20111954");
130
date_test_defmt("ddmmyy", "130464");
131
date_test_defmt("mmm.dd.yyyy", "MAR-12-1967");
132
date_test_defmt("yy/mm/dd", "1954, February 3rd");
133
date_test_defmt("mmm.dd.yyyy", "041269");
134
date_test_defmt("yy/mm/dd", "In the year 2525, in the month of July, mankind will be alive on the 28th day");
135
date_test_defmt("dd-mm-yy", "I said on the 28th of July in the year 2525");
136
date_test_defmt("mmm.dd.yyyy", "9/14/58");
137
date_test_defmt("yy/mm/dd", "47/03/29");
138
date_test_defmt("mmm.dd.yyyy", "oct 28 1975");
139
date_test_defmt("mmddyy", "Nov 14th, 1985");
140
/* ok: still contains dd mm yy */
141
date_test_defmt("bladdfoommbaryybong", "20/11/1954");
142
/* 1994 is not a leap year, it accepts the date as 01-03-1994 */
143
date_test_defmt("ddmmyy", "29-02-1994");
145
/* ECPG_INFORMIX_ENOTDMY, need "dd", "mm" and "yy" */
146
date_test_defmt("dmy", "20/11/1954");
148
/* ECPG_INFORMIX_ENOSHORTDATE */
149
date_test_defmt("ddmmyy", "21254");
150
date_test_defmt("ddmmyy", " 21254 ");
152
/* ECPG_INFORMIX_BAD_DAY */
153
date_test_defmt("ddmmyy", "320494");
155
/* ECPG_INFORMIX_BAD_MONTH */
156
date_test_defmt("mm-yyyy-dd", "13-1993-21");
158
/* ECPG_INFORMIX_BAD_YEAR */
165
check_return(int ret)
169
case ECPG_INFORMIX_ENOTDMY:
170
printf("(ECPG_INFORMIX_ENOTDMY)");
172
case ECPG_INFORMIX_ENOSHORTDATE:
173
printf("(ECPG_INFORMIX_ENOSHORTDATE)");
175
case ECPG_INFORMIX_BAD_DAY:
176
printf("(ECPG_INFORMIX_BAD_DAY)");
178
case ECPG_INFORMIX_BAD_MONTH:
179
printf("(ECPG_INFORMIX_BAD_MONTH)");
182
printf("(unknown ret: %d)", ret);