CMGDK r49-rc2
K:/CMGDKv18/SDK/Source/SQL/MySQL/include/my_time.h
浏览该文件的文档。
00001 / *   C o p y r i g h t   ( C )   2 0 0 4 - 2 0 0 5   M y S Q L   A B 
00002  
00003    T h i s   p r o g r a m   i s   f r e e   s o f t w a r e ;   y o u   c a n   r e d i s t r i b u t e   i t   a n d / o r   m o d i f y 
00004  
00005    i t   u n d e r   t h e   t e r m s   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e   a s   p u b l i s h e d   b y 
00006  
00007    t h e   F r e e   S o f t w a r e   F o u n d a t i o n ;   v e r s i o n   2   o f   t h e   L i c e n s e . 
00008  
00009    T h i s   p r o g r a m   i s   d i s t r i b u t e d   i n   t h e   h o p e   t h a t   i t   w i l l   b e   u s e f u l , 
00010  
00011    b u t   W I T H O U T   A N Y   W A R R A N T Y ;   w i t h o u t   e v e n   t h e   i m p l i e d   w a r r a n t y   o f 
00012  
00013    M E R C H A N T A B I L I T Y   o r   F I T N E S S   F O R   A   P A R T I C U L A R   P U R P O S E .     S e e   t h e 
00014  
00015    G N U   G e n e r a l   P u b l i c   L i c e n s e   f o r   m o r e   d e t a i l s . 
00016  
00017    Y o u   s h o u l d   h a v e   r e c e i v e d   a   c o p y   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e 
00018  
00019    a l o n g   w i t h   t h i s   p r o g r a m ;   i f   n o t ,   w r i t e   t o   t h e   F r e e   S o f t w a r e 
00020  
00021    F o u n d a t i o n ,   I n c . ,   5 9   T e m p l e   P l a c e ,   S u i t e   3 3 0 ,   B o s t o n ,   M A     0 2 1 1 1 - 1 3 0 7     U S A   * / 
00022  
00023  / * 
00024  
00025      T h i s   i s   a   p r i v a t e   h e a d e r   o f   s q l - c o m m o n   l i b r a r y ,   c o n t a i n i n g 
00026  
00027      d e c l a r a t i o n s   f o r   m y _ t i m e . c 
00028  
00029  * / 
00030  
00031  # i f n d e f   _ m y _ t i m e _ h _ 
00032  
00033  # d e f i n e   _ m y _ t i m e _ h _ 
00034  
00035  # i n c l u d e   " m y _ g l o b a l . h " 
00036  
00037  # i n c l u d e   " m y s q l _ t i m e . h " 
00038  
00039  C _ M O D E _ S T A R T 
00040  
00041  e x t e r n   u l o n g l o n g   l o g _ 1 0 _ i n t [ 2 0 ] ; 
00042  
00043  e x t e r n   u c h a r   d a y s _ i n _ m o n t h [ ] ; 
00044  
00045  / * 
00046  
00047      P o r t a b l e   t i m e _ t   r e p l a c e m e n t . 
00048  
00049      S h o u l d   b e   s i g n e d   a n d   h o l d   s e c o n d s   f o r   1 9 0 2   - -   2 0 3 8 - 0 1 - 1 9   r a n g e 
00050  
00051      i . e   a t   l e a s t   a   3 2 b i t   v a r i a b l e 
00052  
00053      U s i n g   t h e   s y s t e m   b u i l t   i n   t i m e _ t   i s   n o t   a n   o p t i o n   a s 
00054  
00055      w e   r e l y   o n   t h e   a b o v e   r e q u i r e m e n t s   i n   t h e   t i m e   f u n c t i o n s 
00056  
00057      F o r   e x a m p l e   Q N X   h a s   a n   u n s i g n e d   t i m e _ t   t y p e 
00058  
00059  * / 
00060  
00061  t y p e d e f   l o n g   m y _ t i m e _ t ; 
00062  
00063  # d e f i n e   M Y _ T I M E _ T _ M A X   L O N G _ M A X 
00064  
00065  # d e f i n e   M Y _ T I M E _ T _ M I N   L O N G _ M I N 
00066  
00067  / *   T i m e   h a n d l i n g   d e f a u l t s   * / 
00068  
00069  # d e f i n e   T I M E S T A M P _ M A X _ Y E A R   2 0 3 8 
00070  
00071  # d e f i n e   T I M E S T A M P _ M I N _ Y E A R   ( 1 9 0 0   +   Y Y _ P A R T _ Y E A R   -   1 ) 
00072  
00073  # d e f i n e   T I M E S T A M P _ M A X _ V A L U E   I N T _ M A X 3 2 
00074  
00075  # d e f i n e   T I M E S T A M P _ M I N _ V A L U E   1 
00076  
00077  / *   t w o - d i g i t   y e a r s   <   t h i s   a r e   2 0 . . ;   > =   t h i s   a r e   1 9 . .   * / 
00078  
00079  # d e f i n e   Y Y _ P A R T _ Y E A R           7 0 
00080  
00081  / *   F l a g s   t o   s t r _ t o _ d a t e t i m e   * / 
00082  
00083  # d e f i n e   T I M E _ F U Z Z Y _ D A T E       1 
00084  
00085  # d e f i n e   T I M E _ D A T E T I M E _ O N L Y     2 
00086  
00087  / *   M u s t   b e   s a m e   a s   M O D E _ N O _ Z E R O _ I N _ D A T E   * / 
00088  
00089  # d e f i n e   T I M E _ N O _ Z E R O _ I N _ D A T E         ( 6 5 5 3 6 L * 2 * 2 * 2 * 2 * 2 * 2 * 2 ) 
00090  
00091  / *   M u s t   b e   s a m e   a s   M O D E _ N O _ Z E R O _ D A T E   * / 
00092  
00093  # d e f i n e   T I M E _ N O _ Z E R O _ D A T E   ( T I M E _ N O _ Z E R O _ I N _ D A T E * 2 ) 
00094  
00095  # d e f i n e   T I M E _ I N V A L I D _ D A T E S     ( T I M E _ N O _ Z E R O _ D A T E * 2 ) 
00096  
00097  # d e f i n e   M Y S Q L _ T I M E _ W A R N _ T R U N C A T E D         1 
00098  
00099  # d e f i n e   M Y S Q L _ T I M E _ W A R N _ O U T _ O F _ R A N G E   2 
00100  
00101  / *   L i m i t s   f o r   t h e   T I M E   d a t a   t y p e   * / 
00102  
00103  # d e f i n e   T I M E _ M A X _ H O U R   8 3 8 
00104  
00105  # d e f i n e   T I M E _ M A X _ M I N U T E   5 9 
00106  
00107  # d e f i n e   T I M E _ M A X _ S E C O N D   5 9 
00108  
00109  # d e f i n e   T I M E _ M A X _ V A L U E   ( T I M E _ M A X _ H O U R * 1 0 0 0 0   +   T I M E _ M A X _ M I N U T E * 1 0 0   +   \ 
00110  
00111                                                  T I M E _ M A X _ S E C O N D ) 
00112  
00113  # d e f i n e   T I M E _ M A X _ V A L U E _ S E C O N D S   ( T I M E _ M A X _ H O U R   *   3 6 0 0 L   +   \ 
00114  
00115                                                                  T I M E _ M A X _ M I N U T E   *   6 0 L   +   T I M E _ M A X _ S E C O N D ) 
00116  
00117  m y _ b o o l   c h e c k _ d a t e ( c o n s t   M Y S Q L _ T I M E   * l t i m e ,   m y _ b o o l   n o t _ z e r o _ d a t e , 
00118  
00119                                        u l o n g   f l a g s ,   i n t   * w a s _ c u t ) ; 
00120  
00121  e n u m   e n u m _ m y s q l _ t i m e s t a m p _ t y p e 
00122  
00123  s t r _ t o _ d a t e t i m e ( c o n s t   c h a r   * s t r ,   u i n t   l e n g t h ,   M Y S Q L _ T I M E   * l _ t i m e , 
00124  
00125                                  u i n t   f l a g s ,   i n t   * w a s _ c u t ) ; 
00126  
00127  l o n g l o n g   n u m b e r _ t o _ d a t e t i m e ( l o n g l o n g   n r ,   M Y S Q L _ T I M E   * t i m e _ r e s , 
00128  
00129                                                          u i n t   f l a g s ,   i n t   * w a s _ c u t ) ; 
00130  
00131  u l o n g l o n g   T I M E _ t o _ u l o n g l o n g _ d a t e t i m e ( c o n s t   M Y S Q L _ T I M E   * ) ; 
00132  
00133  u l o n g l o n g   T I M E _ t o _ u l o n g l o n g _ d a t e ( c o n s t   M Y S Q L _ T I M E   * ) ; 
00134  
00135  u l o n g l o n g   T I M E _ t o _ u l o n g l o n g _ t i m e ( c o n s t   M Y S Q L _ T I M E   * ) ; 
00136  
00137  u l o n g l o n g   T I M E _ t o _ u l o n g l o n g ( c o n s t   M Y S Q L _ T I M E   * ) ; 
00138  
00139  
00140  
00141  m y _ b o o l   s t r _ t o _ t i m e ( c o n s t   c h a r   * s t r , u i n t   l e n g t h ,   M Y S Q L _ T I M E   * l _ t i m e , 
00142  
00143                                          i n t   * w a r n i n g ) ; 
00144  
00145  i n t   c h e c k _ t i m e _ r a n g e ( s t r u c t   s t _ m y s q l _ t i m e   * ,   i n t   * w a r n i n g ) ; 
00146  
00147  l o n g   c a l c _ d a y n r ( u i n t   y e a r , u i n t   m o n t h , u i n t   d a y ) ; 
00148  
00149  u i n t   c a l c _ d a y s _ i n _ y e a r ( u i n t   y e a r ) ; 
00150  
00151  u i n t   y e a r _ 2 0 0 0 _ h a n d l i n g ( u i n t   y e a r ) ; 
00152  
00153  v o i d   m y _ i n i t _ t i m e ( v o i d ) ; 
00154  
00155  
00156  
00157  / * 
00158  
00159      F u n c t i o n   t o   c h e c k   s a n i t y   o f   a   T I M E S T A M P   v a l u e 
00160  
00161      D E S C R I P T I O N 
00162  
00163          C h e c k   i f   a   g i v e n   M Y S Q L _ T I M E   v a l u e   f i t s   i n   T I M E S T A M P   r a n g e . 
00164  
00165          T h i s   f u n c t i o n   d o e s n ' t   m a k e   p r e c i s e   c h e c k ,   b u t   r a t h e r   a   r o u g h 
00166  
00167          e s t i m a t e . 
00168  
00169      R E T U R N   V A L U E S 
00170  
00171          F A L S E       T h e   v a l u e   s e e m s   s a n e 
00172  
00173          T R U E         T h e   M Y S Q L _ T I M E   v a l u e   i s   d e f i n i t e l y   o u t   o f   r a n g e 
00174  
00175  * / 
00176  
00177  s t a t i c   i n l i n e   m y _ b o o l   v a l i d a t e _ t i m e s t a m p _ r a n g e ( c o n s t   M Y S Q L _ T I M E   * t ) 
00178  
00179  { 
00180  
00181      i f   ( ( t - > y e a r   >   T I M E S T A M P _ M A X _ Y E A R   | |   t - > y e a r   <   T I M E S T A M P _ M I N _ Y E A R )   | | 
00182  
00183              ( t - > y e a r   = =   T I M E S T A M P _ M A X _ Y E A R   & &   ( t - > m o n t h   >   1   | |   t - > d a y   >   1 9 ) )   | | 
00184  
00185              ( t - > y e a r   = =   T I M E S T A M P _ M I N _ Y E A R   & &   ( t - > m o n t h   <   1 2   | |   t - > d a y   <   3 1 ) ) ) 
00186  
00187          r e t u r n   F A L S E ; 
00188  
00189      r e t u r n   T R U E ; 
00190  
00191  } 
00192  
00193  m y _ t i m e _ t   
00194  
00195  m y _ s y s t e m _ g m t _ s e c ( c o n s t   M Y S Q L _ T I M E   * t ,   l o n g   * m y _ t i m e z o n e , 
00196  
00197                                      m y _ b o o l   * i n _ d s t _ t i m e _ g a p ) ; 
00198  
00199  v o i d   s e t _ z e r o _ t i m e ( M Y S Q L _ T I M E   * t m ,   e n u m   e n u m _ m y s q l _ t i m e s t a m p _ t y p e   t i m e _ t y p e ) ; 
00200  
00201  / * 
00202  
00203      R e q u i r e d   b u f f e r   l e n g t h   f o r   m y _ t i m e _ t o _ s t r ,   m y _ d a t e _ t o _ s t r , 
00204  
00205      m y _ d a t e t i m e _ t o _ s t r   a n d   T I M E _ t o _ s t r i n g   f u n c t i o n s .   N o t e ,   t h a t   t h e 
00206  
00207      c a l l e r   i s   s t i l l   r e s p o n s i b l e   t o   c h e c k   t h a t   g i v e n   T I M E   s t r u c t u r e 
00208  
00209      h a s   v a l u e s   i n   v a l i d   r a n g e s ,   o t h e r w i s e   s i z e   o f   t h e   b u f f e r   c o u l d 
00210  
00211      b e   n o t   e n o u g h .   W e   a l s o   r e l y   o n   t h e   f a c t   t h a t   e v e n   w r o n g   v a l u e s 
00212  
00213      s e n t   u s i n g   b i n a r y   p r o t o c o l   f i t   i n   t h i s   b u f f e r . 
00214  
00215  * / 
00216  
00217  # d e f i n e   M A X _ D A T E _ S T R I N G _ R E P _ L E N G T H   3 0 
00218  
00219  i n t   m y _ t i m e _ t o _ s t r ( c o n s t   M Y S Q L _ T I M E   * l _ t i m e ,   c h a r   * t o ) ; 
00220  
00221  i n t   m y _ d a t e _ t o _ s t r ( c o n s t   M Y S Q L _ T I M E   * l _ t i m e ,   c h a r   * t o ) ; 
00222  
00223  i n t   m y _ d a t e t i m e _ t o _ s t r ( c o n s t   M Y S Q L _ T I M E   * l _ t i m e ,   c h a r   * t o ) ; 
00224  
00225  i n t   m y _ T I M E _ t o _ s t r ( c o n s t   M Y S Q L _ T I M E   * l _ t i m e ,   c h a r   * t o ) ; 
00226  
00227  / *   
00228  
00229      A v a i l a b l e   i n t e r v a l   t y p e s   u s e d   i n   a n y   s t a t e m e n t . 
00230  
00231      ' i n t e r v a l _ t y p e '   m u s t   b e   s o r t e d   s o   t h a t   s i m p l e   i n t e r v a l s   c o m e s   f i r s t , 
00232  
00233      i e   y e a r ,   q u a r t e r ,   m o n t h ,   w e e k ,   d a y ,   h o u r ,   e t c .   T h e   o r d e r   b a s e d   o n 
00234  
00235      i n t e r v a l   s i z e   i s   a l s o   i m p o r t a n t   a n d   t h e   i n t e r v a l s   s h o u l d   b e   k e p t   i n   a 
00236  
00237      l a r g e   t o   s m a l l e r   o r d e r .   ( g e t _ i n t e r v a l _ v a l u e ( )   d e p e n d s   o n   t h i s ) 
00238  
00239    
00240  
00241      N o t e :   I f   y o u   c h a n g e   t h e   o r d e r   o f   e l e m e n t s   i n   t h i s   e n u m   y o u   s h o u l d   f i x   
00242  
00243      o r d e r   o f   e l e m e n t s   i n   ' i n t e r v a l _ t y p e _ t o _ n a m e '   a n d   ' i n t e r v a l _ n a m e s '   
00244  
00245      a r r a y s   
00246  
00247      
00248  
00249      S e e   a l s o   i n t e r v a l _ t y p e _ t o _ n a m e ,   g e t _ i n t e r v a l _ v a l u e ,   i n t e r v a l _ n a m e s 
00250  
00251  * / 
00252  
00253  e n u m   i n t e r v a l _ t y p e 
00254  
00255  { 
00256  
00257      I N T E R V A L _ Y E A R ,   I N T E R V A L _ Q U A R T E R ,   I N T E R V A L _ M O N T H ,   I N T E R V A L _ W E E K ,   I N T E R V A L _ D A Y , 
00258  
00259      I N T E R V A L _ H O U R ,   I N T E R V A L _ M I N U T E ,   I N T E R V A L _ S E C O N D ,   I N T E R V A L _ M I C R O S E C O N D , 
00260  
00261      I N T E R V A L _ Y E A R _ M O N T H ,   I N T E R V A L _ D A Y _ H O U R ,   I N T E R V A L _ D A Y _ M I N U T E , 
00262  
00263      I N T E R V A L _ D A Y _ S E C O N D ,   I N T E R V A L _ H O U R _ M I N U T E ,   I N T E R V A L _ H O U R _ S E C O N D , 
00264  
00265      I N T E R V A L _ M I N U T E _ S E C O N D ,   I N T E R V A L _ D A Y _ M I C R O S E C O N D ,   I N T E R V A L _ H O U R _ M I C R O S E C O N D , 
00266  
00267      I N T E R V A L _ M I N U T E _ M I C R O S E C O N D ,   I N T E R V A L _ S E C O N D _ M I C R O S E C O N D ,   I N T E R V A L _ L A S T 
00268  
00269  } ; 
00270  
00271  C _ M O D E _ E N D 
00272  
00273  # e n d i f   / *   _ m y _ t i m e _ h _   * / 
00274  
00275  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义