DD/MM/YYYY输入验证

Mac*_*ers 0 c++ linux validation date

我正在处理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; }
    }   
}
Run Code Online (Sandbox Code Playgroud)

谁能解释这个错误(以及我做错了什么)?干杯!!

mgi*_*ida 5

    if ( Y%4=0 ) { return true; }        
Run Code Online (Sandbox Code Playgroud)

应该:

    if ( Y%4==0 ) { return true; }        
Run Code Online (Sandbox Code Playgroud)

左值是一个表达式,指的是内存中的某个位置.Y%4是一个右值 - 从语义上讲它不能分配.