DD / MM / YYYY输入验证

时间:2012-04-17 23:32:36

标签: c++ linux date validation

我正在处理date validation(MM / DD / YYYY)并收到此错误:

  

错误:左值作为赋值的左操作数

在第9行(if ( Y%4=0 ) { return true; })运行这段代码?

bool valDate( int M, int D, int Y ) 
{
    if (! (1<=M and M<=12) ) return false;    
    if (! (1<=D and D<=31) ) return false;
    if ( (D==31) and (M==2 or M==4 or M==6 or M==9 or M==11) )        
        return false;
    if ( (D==30) and (M==2) ) return false;
    if ( (M==2) and (D==29) ) { 
        if ( Y%4=0 ) { return true; }        
        else { return false; }        
        if ( (Y%100==0) and (Y%400==0) ) { return true; }
        else { return false; }
    }   
}

有人可以解释错误(以及我做错了什么)吗?干杯!!

1 个答案:

答案 0 :(得分:5)

    if ( Y%4=0 ) { return true; }        

应该是:

    if ( Y%4==0 ) { return true; }        

左值是一个引用内存中某个位置的表达式。 Y%4是一个右值 - 从语义上讲,它不能被赋值。