大家好,我想问个问题,麻烦请指教
                             return year-d.year>0?1
:year-d.year<0?-1
:month-d.month>0?1
:month-d.month<0?-1
:day-d.day>0?1
:day-d.day<0?-1:0;上面的这个语句如何用if来实现呢,谢谢了

解决方案 »

  1.   

    int val = (year-d.year)*100+(month-d.month)*10+(day-d.day);
    if(val>0)
      return 1;
    else if(val<0)
      return -1;
    else 
      return 0;
      

  2.   

    写错了,呵呵,把100改为1000,10改为50就可以了,不过这样写纯粹是好玩而已,真要写成if-else太罗嗦了
    int yd=year-d.year;
    int md=month-d.month;
    int dd=day-d.day;
    if(yd>0)
      return 1;
    else if(yd<0)
      return -1;
    else
      if(md>0)
         return 1;
      else if(md<0)
         return -1;
      else
         if(dd>0)
            return 1;
         else if(dd<0)
            return -1;
         else
            return 0;
      

  3.   


    int y;
    if(year-d.year>0)y=1;
    else{
       if(year-d.year<0)y=-1;
       else{
           if(month-d.month>0)y=1;
           else{
               if(month-d.month <0)y=-1;
               else{
                   if(day-d.day>0)y=1;
                   else if(day-d.day<0)y=-1;   
                   else y=0;
                   }
               }
       } 
    }
    return y;
      

  4.   


    方法解释:
    判断两日期的大小
    当大于返回1
    当等于返回0
    当小于返回-1 if((year-d.year>0)||((year-d.year==0)&&(month-d.month>0))||((year-d.year==0)&&(month-d.month==0)&&(day-d.day==0))){

     return 1;
    }else if((year==d.year)&&(day==d.day)&&(month==d.month)){
    return 0;
    }else return -1;