输入年月日时分秒,输出年月日时分秒的下一秒

来源:互联网 发布:windows 连接数据库 编辑:程序博客网 时间:2024/04/29 05:27

/*输入年月日时分秒,输出年月日时分秒的下一秒,输出仍然在原内存空间*/
void NextMinute(int *nYear,int *nMonth,int *nDate,int *nHour,int *nMinute,int *nSecond)
{
  int nDays;
  (*nSecond)++;  /* 秒加1*/
  if(*nSecond>=60)  /*秒满60,做出特殊处理,下面时,日,月等类同  */
  {
    *nSecond=0;
    (*nMinute)++;
    if(*nMinute>=60)
    {
      *nMinute=0;
      (*nHour)++;
      if(*nHour>=24)
      {
        *nHour=0;
        (*nDate)++;
        switch(*nMonth)
        {
          case 1:
          case 3:
          case 5:
          case 7:
          case 8:
          case 10:
          case 12:
            nDays=31;
          break;
          case 2:/* 判断闰年*/
            if(*nYear%400==0||*nYear%100!=0&&*nYear%4==0)
            {
            nDays=29;
            }
            else
            {
            nDays=28;
            }
          break;
          default:
            nDays=30;
          break;
        }
        if(*nDate>=nDays)
        {
          *nDate=1;
          (*nMonth)++;
          if(*nMonth>12)
          {
          *nMonth=1;
          (*nYear)++;
          }
        }
      }
    }
  }
}
/*示例可运行代码*/
void main()
{
  int nYear=2004,nMonth=12,nDate=31,nHour=59,nMinute=59,nSecond=59;
  NextMinute(&nYear,&nMonth,&nDate,&nHour,&nMinute,&nSecond);
  printf("The result:%d-%d-%d %d:%d:%d",nYear,nMonth,nDate,nHour,nMinute,nSecond);

  getch();
}

 

原创粉丝点击