~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
/* Copyright (C) 2000 MySQL AB
2
3
   This program is free software; you can redistribute it and/or modify
4
   it under the terms of the GNU General Public License as published by
5
   the Free Software Foundation; version 2 of the License.
6
7
   This program is distributed in the hope that it will be useful,
8
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
   GNU General Public License for more details.
11
12
   You should have received a copy of the GNU General Public License
13
   along with this program; if not, write to the Free Software
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
14
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
1 by brian
clean slate
15
16
/* Get date in a printable form: yyyy-mm-dd hh:mm:ss */
17
2173.2.1 by Monty Taylor
Fixes incorrect usage of include
18
#include <config.h>
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
19
2173.2.1 by Monty Taylor
Fixes incorrect usage of include
20
#include <drizzled/internal/my_sys.h>
21
#include <drizzled/internal/m_string.h>
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
22
#include <cstdio>
23
24
namespace drizzled
25
{
26
namespace internal
27
{
1 by brian
clean slate
28
29
/*
30
  get date as string
31
32
  SYNOPSIS
33
    get_date()
34
    to   - string where date will be written
35
    flag - format of date:
36
	  If flag & GETDATE_TIME	Return date and time
37
	  If flag & GETDATE_SHORT_DATE	Return short date format YYMMDD
38
	  If flag & GETDATE_HHMMSSTIME	Return time in HHMMDD format.
39
	  If flag & GETDATE_GMT		Date/time in GMT
40
	  If flag & GETDATE_FIXEDLENGTH	Return fixed length date/time
41
    date - for conversion
42
*/
43
44
2194.3.1 by Olaf van der Spek
Remove register keyword
45
void get_date(char * to, int flag, time_t date)
1 by brian
clean slate
46
{
2194.3.1 by Olaf van der Spek
Remove register keyword
47
   tm *start_time;
1 by brian
clean slate
48
   time_t skr;
1192.3.43 by Monty Taylor
Removed many, many checks for functions that do not need to be checked.
49
   struct tm tm_tmp;
1 by brian
clean slate
50
685.3.2 by Toru Maesaka
Removed my_time() and added error checking
51
   skr= date ? (time_t) date : time(0);
1 by brian
clean slate
52
   if (flag & GETDATE_GMT)
53
     localtime_r(&skr,&tm_tmp);
54
   else
55
     gmtime_r(&skr,&tm_tmp);
56
   start_time= &tm_tmp;
57
   if (flag & GETDATE_SHORT_DATE)
58
     sprintf(to,"%02d%02d%02d",
59
	     start_time->tm_year % 100,
60
	     start_time->tm_mon+1,
61
	     start_time->tm_mday);
62
   else
63
     sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ?
64
		  "%4d-%02d-%02d" : "%d-%02d-%02d"),
65
	     start_time->tm_year+1900,
66
	     start_time->tm_mon+1,
67
	     start_time->tm_mday);
68
   if (flag & GETDATE_DATE_TIME)
376 by Brian Aker
strend remove
69
     sprintf(strchr(to, '\0'),
1 by brian
clean slate
70
	     ((flag & GETDATE_FIXEDLENGTH) ?
71
	      " %02d:%02d:%02d" : " %2d:%02d:%02d"),
72
	     start_time->tm_hour,
73
	     start_time->tm_min,
74
	     start_time->tm_sec);
75
   else if (flag & GETDATE_HHMMSSTIME)
376 by Brian Aker
strend remove
76
     sprintf(strchr(to, '\0'),"%02d%02d%02d",
1 by brian
clean slate
77
	     start_time->tm_hour,
78
	     start_time->tm_min,
79
	     start_time->tm_sec);
80
} /* get_date */
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
81
82
} /* namespace internal */
83
} /* namespace drizzled */