0

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

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

在 line: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; }
    }   
}

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

4

1 回答 1

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

应该:

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

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

于 2012-04-17T23:35:37.667 回答