~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
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
16
/* Get date in a printable form: yyyy-mm-dd hh:mm:ss */
17
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
18
#include "config.h"
19
20
#include "drizzled/internal/my_sys.h"
1241.9.64 by Monty Taylor
Moved remaining non-public portions of mysys and mystrings to drizzled/internal.
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
45
void get_date(register char * to, int flag, time_t date)
46
{
47
   register struct tm *start_time;
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 */