📄 datetime_8h-source.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>datetime.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </center>
<hr><h1>datetime.h</h1><div class="fragment"><pre>00001 <span class="comment">//-< DATEIME.H >-----------------------------------------------------*--------*</span>
00002 <span class="comment">// FastDB Version 1.0 (c) 1999 GARRET * ? *</span>
00003 <span class="comment">// (Main Memory Database Management System) * /\| *</span>
00004 <span class="comment">// * / \ *</span>
00005 <span class="comment">// Created: 20-Nov-98 K.A. Knizhnik * / [] \ *</span>
00006 <span class="comment">// Last update: 10-Dec-98 K.A. Knizhnik * GARRET *</span>
00007 <span class="comment">//-------------------------------------------------------------------*--------*</span>
00008 <span class="comment">// Date-time field type</span>
00009 <span class="comment">//-------------------------------------------------------------------*--------*</span>
00010
00011 <span class="preprocessor">#ifndef __DATETIME_H__</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define __DATETIME_H__</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#include "stdtp.h"</span>
00015 <span class="preprocessor">#include "class.h"</span>
00016
00017 BEGIN_FASTDB_NAMESPACE
00018
00019 <span class="keyword">class </span>FASTDB_DLL_ENTRY dbDateTime {
00020 int4 stamp;
00021 <span class="keyword">public</span>:
00022 <span class="keywordtype">bool</span> operator == (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00023 <span class="keywordflow">return</span> stamp == dt.stamp;
00024 }
00025 <span class="keywordtype">bool</span> operator != (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00026 <span class="keywordflow">return</span> stamp != dt.stamp;
00027 }
00028 <span class="keywordtype">bool</span> operator > (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00029 <span class="keywordflow">return</span> stamp > dt.stamp;
00030 }
00031 <span class="keywordtype">bool</span> operator >= (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00032 <span class="keywordflow">return</span> stamp >= dt.stamp;
00033 }
00034 <span class="keywordtype">bool</span> operator < (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00035 <span class="keywordflow">return</span> stamp < dt.stamp;
00036 }
00037 <span class="keywordtype">bool</span> operator <= (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00038 <span class="keywordflow">return</span> stamp <= dt.stamp;
00039 }
00040 <span class="keywordtype">int</span> operator - (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00041 <span class="keywordflow">return</span> stamp - dt.stamp;
00042 }
00043 <span class="keywordtype">int</span> operator + (dbDateTime <span class="keyword">const</span>& dt)<span class="keyword"> const </span>{
00044 <span class="keywordflow">return</span> stamp + dt.stamp;
00045 }
00046 <span class="keyword">static</span> dbDateTime current() {
00047 <span class="keywordflow">return</span> dbDateTime(time(NULL));
00048 }
00049 dbDateTime(time_t tm) {
00050 stamp = (int4)tm;
00051 }
00052 dbDateTime() {
00053 stamp = -1;
00054 }
00055 <span class="keywordtype">bool</span> isValid()<span class="keyword"> const </span>{
00056 <span class="keywordflow">return</span> stamp != -1;
00057 }
00058
00059 time_t asTime_t()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stamp; }
00060
00061 <span class="keywordtype">void</span> clear() { stamp = -1; }
00062
00063 dbDateTime(<span class="keywordtype">int</span> year, <span class="keywordtype">int</span> month, <span class="keywordtype">int</span> day,
00064 <span class="keywordtype">int</span> hour=0, <span class="keywordtype">int</span> min=0, <span class="keywordtype">int</span> sec = 0)
00065 {
00066 <span class="keyword">struct </span>tm t;
00067 t.tm_year = year > 1900 ? year - 1900 : year;
00068 t.tm_mon = month-1;
00069 t.tm_mday = day;
00070 t.tm_hour = hour;
00071 t.tm_min = min;
00072 t.tm_sec = sec;
00073 t.tm_isdst = -1;
00074 stamp = (int4)mktime(&t);
00075 }
00076 dbDateTime(<span class="keywordtype">int</span> hour, <span class="keywordtype">int</span> min) {
00077 stamp = (hour*60+min)*60;
00078 }
00079
00080 <span class="preprocessor">#if defined(HAVE_LOCALTIME_R) && !defined(NO_PTHREADS)</span>
00081 <span class="preprocessor"></span> <span class="keywordtype">int</span> year() {
00082 <span class="keyword">struct </span>tm t;
00083 time_t tt = (nat4)stamp;
00084 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_year + 1900;
00085 }
00086 <span class="keywordtype">int</span> month() { <span class="comment">// 1..12</span>
00087 <span class="keyword">struct </span>tm t;
00088 time_t tt = (nat4)stamp;
00089 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_mon + 1;
00090 }
00091 <span class="keywordtype">int</span> day() { <span class="comment">// 1..31</span>
00092 <span class="keyword">struct </span>tm t;
00093 time_t tt = (nat4)stamp;
00094 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_mday;
00095 }
00096 <span class="keywordtype">int</span> dayOfYear() { <span class="comment">// 1..366</span>
00097 <span class="keyword">struct </span>tm t;
00098 time_t tt = (nat4)stamp;
00099 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_yday+1;
00100 }
00101 <span class="keywordtype">int</span> dayOfWeek() { <span class="comment">// 1..7</span>
00102 <span class="keyword">struct </span>tm t;
00103 time_t tt = (nat4)stamp;
00104 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_wday+1;
00105 }
00106 <span class="keywordtype">int</span> hour() { <span class="comment">// 0..24</span>
00107 <span class="keyword">struct </span>tm t;
00108 time_t tt = (nat4)stamp;
00109 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_hour;
00110 }
00111 <span class="keywordtype">int</span> minute() { <span class="comment">// 0..59</span>
00112 <span class="keyword">struct </span>tm t;
00113 time_t tt = (nat4)stamp;
00114 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_min;
00115 }
00116 <span class="keywordtype">int</span> second() { <span class="comment">// 0..59</span>
00117 <span class="keyword">struct </span>tm t;
00118 time_t tt = (nat4)stamp;
00119 <span class="keywordflow">return</span> localtime_r(&tt, &t)->tm_sec;
00120 }
00121 <span class="keywordtype">char</span>* asString(<span class="keywordtype">char</span>* buf, <span class="keywordtype">int</span> buf_size, <span class="keywordtype">char</span> <span class="keyword">const</span>* format = <span class="stringliteral">"%c"</span>)<span class="keyword"> const </span>{
00122 <span class="keyword">struct </span>tm t;
00123 time_t tt = (nat4)stamp;
00124 strftime(buf, buf_size, format, localtime_r(&tt, &t));
00125 <span class="keywordflow">return</span> buf;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -