FreeBASIC  0.91.0
time_dateset.c
Go to the documentation of this file.
1 /* setdate function */
2 
3 #include "fb.h"
4 #include <ctype.h>
5 
19 {
20  if( (date != NULL) && (date->data != NULL) )
21  {
22 
23  char *t, c, sep;
24  int m, d, y;
25 
26  /* get month */
27  m = 0;
28  for( t = date->data; (c = *t) && isdigit(c); t++ )
29  {
30  m = m * 10 + c - '0';
31  }
32 
33  if( ((c != '/') && (c != '-')) || (m < 1) || (m > 12) )
34  {
36  }
37  sep = c;
38 
39  /* get day */
40  d = 0;
41  for( t++; (c = *t) && isdigit(c); t++ )
42  {
43  d = d * 10 + c - '0';
44  }
45 
46  if( (c != sep) || (d < 1) || (d > 31) )
47  {
49  }
50 
51  /* get year */
52  y = 0;
53  for( t++; (c = *t) && isdigit(c); t++ )
54  {
55  y = y * 10 + c - '0';
56  }
57 
58  if (y < 100) y += 1900;
59 
60  if( fb_hSetDate( y, m, d ) )
61  {
63  }
64  }
65 
66  /* del if temp */
67  fb_hStrDelTemp( date );
68 
69  return fb_ErrorSetNum( FB_RTERROR_OK );
70 }