积累系统性知识
积聚技术精华
  首页    个人中心    撰写积文    建立课题    订立目标    整理积文    管理课题    管理目标    技能Get    代码积累 
显示完整代码
函数名: format_date_time代码语言: C/C++何种处理: 字符串
代码使用场合: 格式化时间日期,以double的时间形式
代码使用前提条件(所依赖的类库,操作系统环境,软件支撑环境等):
自用TAG: format,date,time,double,格式化
   
char *format_date_time(char *buff,char *fmt,double dt)
{
  time_t the_time=dt*24*3600;
  struct tm *time_ptr;
  time_ptr=localtime(&the_time);

  int y=time_ptr->tm_year+1900;
  int M=time_ptr->tm_mon+1;
  int d=time_ptr->tm_mday;

  int h=time_ptr->tm_hour;
  int m=time_ptr->tm_min;
  int s=time_ptr->tm_sec;

  int i,pos;
  for(i=0,pos=0;fmt[i];i++)
  {
    if(fmt[i]=='y' && fmt[i+1]=='y' && fmt[i+2]=='y' && fmt[i+3]=='y')
    {
      sprintf(buff+pos,"%04d",y);
      pos+=4;
      i+=3;//4个格式化字节
    }else
    if(fmt[i]=='M' && fmt[i+1]=='M')
    {
      sprintf(buff+pos,"%02d",M);
      pos+=2;
      i+=1;//2个格式化字节
    }else
    if(fmt[i]=='M')//一个M一定要在两个MM判断之后
    {
      sprintf(buff+pos,"%d",M);
      pos+=strlen(buff+pos);
    }else
    if(fmt[i]=='d' && fmt[i+1]=='d')
    {
      sprintf(buff+pos,"%02d",d);
      pos+=2;
      i+=1;//2个格式化字节
    }else
    if(fmt[i]=='d')//一个d一定要在两个dd判断之后
    {
      sprintf(buff+pos,"%d",d);
      pos+=strlen(buff+pos);
    }else
    if(fmt[i]=='h' && fmt[i+1]=='h')
    {
      sprintf(buff+pos,"%02d",h);
      pos+=2;
      i+=1;//2个格式化字节
    }else
    if(fmt[i]=='h')//一个h一定要在两个hh判断之后
    {
      sprintf(buff+pos,"%d",d);
      pos+=strlen(buff+pos);
    }else
    if(fmt[i]=='m' && fmt[i+1]=='m')
    {
      sprintf(buff+pos,"%02d",m);
      pos+=2;
      i+=1;//2个格式化字节
    }else
    if(fmt[i]=='m')//一个m一定要在两个mm判断之后
    {
      sprintf(buff+pos,"%d",m);
      pos+=strlen(buff+pos);
    }else
    if(fmt[i]=='s' && fmt[i+1]=='s')
    {
      sprintf(buff+pos,"%02d",s);
      pos+=2;
      i+=1;//2个格式化字节
    }else
    if(fmt[i]=='s')//一个s一定要在两个ss判断之后
    {
      sprintf(buff+pos,"%d",s);
      pos+=strlen(buff+pos);
    }else
    {
      buff[pos++]=fmt[i];
    }
  }
  buff[pos]=0;

  return buff;
}
  code_ever(永远的代码):   个人中心    课题    目标    代码积累