/* Ptt : �`�Ψ禡��z */

/*
 * �ɶ��B�z
 */
#include <time.h>
#ifdef _BBS_UTIL
 #undef pstrdup
 #define pstrdup(p, str) strdup(str)
#endif

int 
mygetdate(time_t clock, int *year, int *mon, int *mday, int *week)
{
  struct tm *mytm = localtime(&clock);
  if(year) *year = mytm->tm_year; 	/* 98 */
  if(mon)  *mon  = mytm->tm_mon + 1;    /* 1~12 */
  if(mday) *mday = mytm->tm_mday;       /* 1~31 */
  if(week) *week = mytm->tm_wday;       /* 0~6 */
  return 0;
}

char *
Cdatenum_slash(pool *p,time_t *clock)                         /* 98/04/21 */
{
  char foo[22];
  struct tm *mytm = localtime(clock);
  strftime(foo, 22, "%y/%m/%d", mytm);
  return pstrdup(p, foo);
}          

char * 
Cdatenum(pool *p,time_t *clock) 		                 /* 980421 */	
{
  char foo[22];
  struct tm *mytm = localtime(clock); 
  strftime(foo, 22, "%y%m%d", mytm); 
  return pstrdup(p, foo); 
}


#ifndef _BBS_UTIL
char * 
Cdatefullnum(pool *p,time_t *clock) 			/* 19980421 */
{
  char foo[22];
  struct tm *mytm = localtime(clock); 
  strftime(foo, 22, "%Y%m%d", mytm); 
  return pstrdup(p, foo); 
}
#else
char * 
Cdatefullnum(char *p,time_t *clock) 			/* 19980421 */
{
  static char foo[22];
  struct tm *mytm = localtime(clock); 
  strftime(foo, 22, "%Y%m%d", mytm); 
  return foo;
}
#endif

char * 
Cdate(char *p,time_t *clock)
{
  char foo[22];
  struct tm *mytm = localtime(clock); 
  strftime(foo, 22, "%D %T %a", mytm); 
  return pstrdup(p, foo); 
}

char * 
Cdatelite(char *p,time_t *clock)
{
  char foo[18];
  struct tm *mytm = localtime(clock); 
  strftime(foo, 18, "%D %T", mytm); 
  return pstrdup(p, foo); 
}       
   
char *
whattime(char *p,time_t *clock)
{
  char foo[18];
  struct tm *mytm = localtime(clock);
  strftime(foo, 18, "%H:%M:%S", mytm);
  return pstrdup(p, foo);
} 

char *
whatyear(char *p,time_t *clock)
{
  char foo[6];
  struct tm *mytm = localtime(clock);
  strftime(foo, 6, "%Y", mytm);
  return pstrdup(p, foo);
}                  

char *
whatmonth(char *p,time_t *clock)
{
  char foo[4];
  struct tm *mytm = localtime(clock);
  strftime(foo, 4, "%m", mytm);
  return pstrdup(p, foo);
}                

char *
whatday(char *p,time_t *clock)
{
  char foo[4];
  struct tm *mytm = localtime(clock);
  strftime(foo, 4, "%d", mytm);
  return pstrdup(p, foo);
}                 
      
char *
C_week(pool *p, int a)
{
  char foo[5]="";
  switch(a)
   {
    case 0:
    case 7:
	strcpy(foo,"��");
	break;
    case 1:
        strcpy(foo,"�@");
        break;
    case 2:
        strcpy(foo,"�G");
        break;
    case 3:
        strcpy(foo,"�T");
        break;
    case 4:
        strcpy(foo,"�|");
        break;
    case 5:
        strcpy(foo,"��");
        break;
    case 6:
        strcpy(foo,"��");
        break;
   }
  return pstrdup(p, foo);
} 

char *
whatweek(char *p,time_t *clock)
{
  struct tm *mytm = localtime(clock);
  return C_week(p, mytm->tm_wday);
}              

char *
whathour(char *p,time_t *clock)
{
  char foo[4]="";  
  struct tm *mytm = localtime(clock);
  strftime(foo, 6, "%H", mytm);
  return pstrdup(p, foo);   
}

char *
whatminute(char *p,time_t *clock)
{
  char foo[4]="";  
  struct tm *mytm = localtime(clock);
  strftime(foo, 6, "%M", mytm);
  return pstrdup(p, foo);
}        

char *
whatsecond(char *p,time_t *clock)
{
  char foo[4]="";  
  struct tm *mytm = localtime(clock);
  strftime(foo, 6, "%S", mytm);
  return pstrdup(p, foo);
}        

char *
Wholetime(char *p,time_t *clock)                  /* 19980421 */
{
  char foo[40];
  struct tm *mytm = localtime(clock);
  strftime(foo, 40, "%Y�~%m��%d��%H��%M��%S��", mytm);
  return pstrdup(p, foo);
}