C++ 求某年某月有多少天,最后一种结果无法输出

这怎么输不出28



#include<iostream>
using namespace std;
int main()
{
     int a;
     int b;
     cin>>a>>b;
     if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)
                cout<<31<<endl;
     else if(b==4||b==6||b==9||b==11)
                cout<<30<<endl;
     else if(a%400==0||a%4==0&&a%100!=0;b=2)
                cout<<29<<endl;
     else if(a%2==1;b=2)
                cout<<28<<endl;
return 0;
}

img