当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·delphi简单问题    »显示摘要«
    摘要: 我定义了一个函数: function lb_listback(n:integer):lianbiao; 其中有如下一句: if(lb.num<=lb_listback.num) begin lb.ptr_back:=@lb_listback; lb_listback.ptr_front:=@lb; end lb_listback是lianbiao类变量: type link=^lia......
 ·如何使iis能解释xml    »显示摘要«
    摘要: 请问如何使iis能解释xml? ......


求解关于日期的最佳算法。高分相送(在线)

设计一个满足如下要求的CDate类:  
  1,用下面的格式输入日期:日/月/年:  
  2,输出在当前日期加一天后的日期:  
  3,设置日期:  
  本人想法:  
  是否润年,  
  月份中有30天和31天的怎么加判断,  
  还有2月有分28天和29天。  
  希望能够通过用户输入日期,然后在屏幕显示日期和加一天后的日期。  
 

NO.1   作者: cowputer

对不起,我昨晚有些事没有来,现在我把代码给你,  
  在vc6编译通过,并且对设置日期的成员函数加入了错误校验,你看一下,是否会对你有帮助:  
  代码如下:  
  //主函数:   日期类main.cpp  
  #include<iostream.h>  
  #include"日期类.h"  
  void   main()  
  {  
  Data   a;  
  a.display();  
  a.setdata(1,1,2003);  
  for(int   i=1;i<=365;i++)  
  a.dataadd();  
  cout<<"Next   year   today   is:";  
  a.display();  
  a.setdata(1,1,2004);  
  a.display();  
  cout<<"tomorrow   is:";  
  a.dataadd();  
  a.display();  
  a.setdata(1,1,2001);  
  cout<<"Now   is:";  
  a.display();      
  }  
   
   
   
  //日期类头文件:   日期类.h  
  #include<iostream.h>  
   
  class   Data  
  {  
  public:  
  Data(){year=2000;month=1;day=1;};  
  void   setdata(int   d,int   m,int   y);  
  void   dataadd();  
  void   display();  
  private:  
  int   year;  
  int   month;  
  int   day;  
  };  
   
  void   Data::setdata(int   d,int   m,int   y)  
  {  
  if(y<0)  
  {  
  cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  if((m<1)||(m>12))  
  {  
          cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  if((y%400==0)||(y%4==0&&y%100!=0))  
  {  
  if(m==2)  
  {  
  if((1>d)||(d>29))  
  {  
  cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  }  
  else  
  if((m==4)||(m==6)||(m==9)||(m==11))  
  {  
  if((1>d)||(d>30))  
  {  
  cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  }  
  else  
  if((d<1)||(d>31))  
  {  
  cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  }  
  else  
  if(m==2)  
  if((d<1)||(d>28))  
  {  
  cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  if((m==4)||(m==6)||(m==9)||(m==11))  
  {  
  if((1>d)||(d>30))  
  {  
  cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  }  
  else  
  if((d<1)||(d>31))  
  {  
  cout<<"Its   error   data!"<<endl;  
  return;  
  }  
  day=d;  
  month=m;  
  year=y;  
  }  
   
  void   Data::display()  
  {  
  cout<<"The   data   is   :"<<day<<"/"<<month<<"/"<<year<<endl;  
  }  
   
  void   Data::dataadd()  
  {  
  day=day+1;  
  if(((month==4)||(month==6)||(month==9)||(month==11))&&(day==31))  
  {  
  month=month+1;  
  day=1;  
  return;  
  }  
  if(((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10))&&(day==32))  
  {  
  month=month+1;  
  day=1;  
  return;  
  }  
  if((month==12)&&(day==32))  
  {  
  year=year+1;  
  month=1;  
  day=1;  
  }  
  if(((year%400==0)||((year%4==0)&&(year%100!=0)))&&(month==2)&&(day==30))  
  {  
  month=month+1;  
  day=1;  
  return;  
  }  
          if(!((year%400==0)||(year%4==0&&year%100!=0))&&(month==2)&&(day==29))  
  {  
  month=month+1;  
  day=1;  
  return;  
  }  
  }  
   
   
   
 


    摘要: 请乘坐过以下航班或车次的乘客及时就诊(非典) http://cn.news.yahoo.com/sars_gonggao/index.html 希望看到本信息的任何同志尽可能的转发该消息 比如使用qq、pp、email、各种论坛 我在此代表全国人民感谢支持该活动的所有成员 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE