Pagini recente » Cod sursa (job #1270346) | Cod sursa (job #2179158) | Cod sursa (job #950387) | Cod sursa (job #648068) | Cod sursa (job #2619326)
#include <fstream>
using namespace std;
ifstream in("input.in");
ofstream out("output.out");
int z1=0,l1=0,an1=0;
int z2=0,l2=0,an2=0;
const int nmax=21;
char s1[nmax+1], s2[nmax+1];
const int v[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool verifbis(int n)
{
if((n%4==0 && n%100!=0) || n%400==0)
return 1;
else
return 0;
}
int bis=366, norm=365;
int main()
{
in>>s1;
in>>s2;
for(int i=0; i<=1; i++)
{
z1=z1*10+(s1[i]-'0');
z2=z2*10+(s2[i]-'0');
}
for(int i=3; i<=4; i++)
{
l1=l1*10+(s1[i]-'0');
l2=l2*10+(s2[i]-'0');
}
for(int i=6; i<=9; i++)
{
an1=an1*10+(s1[i]-'0');
an2=an2*10+(s2[i]-'0');
}
int t=1;
int inainte=0;
for(int i=an1; i>=1900; i--)
{
if(verifbis(i)==1)
{
inainte=i; break;
}
}
int diferenta=inainte-1900;
int nranibis=0;
if(diferenta==200)
nranibis=59;
else
nranibis=diferenta/4;
int adaos=0;
for(int i=1; i<=diferenta-nranibis; i++)
adaos+=(365%7);
for(int i=1; i<=nranibis; i++)
adaos+=(366%7);
for(int i=inainte+1; i<an1; i++)
adaos+=1;
adaos=adaos%7;
int zicur1;
zicur1=(1+adaos)%7;
t=2;
int inainte2=0;
for(int i=an2; i>=1900; i--)
{
if(verifbis(i)==1)
{inainte2=i;break;}
}
int diferenta2=inainte2-1900;
int nranibis2=0;
if(diferenta2==200)
nranibis2=59;
else
nranibis2=diferenta2/4;
int adaos2=0;
for(int i=1; i<=diferenta2-nranibis2; i++)
adaos2+=1;
for(int i=1; i<=nranibis2; i++)
adaos2+=2;
for(int i=inainte2+1; i<an2; i++)
adaos2+=1;
adaos2=adaos2%7;
int zicur2;
zicur2=(1+adaos2)%7;
//ziua 1 reprezinta ziua 1 a anului cautat
//de la ziua 1 la ziua cautata voma avea x1 zile
int x1=0;
for(int i=0; i<l1-1; i++)
x1+=v[i];
x1=x1+z1-1;
//ziua 1 reprezinta ziua 1a anului cautat
//de la ziua 2 la ziua cautata vom avea x2 zile;
int x2=0;
for(int i=0; i<l2-1; i++)
x2+=v[i];
x2=x2+z2-1;
//aflu cate zile sunt intre cei doi ani
int nrziletot=0;
for(int i=an1; i<an2; i++)
{
if(verifbis(i)==0)
nrziletot+=2;
else
nrziletot+=1;
}
int z0;
z0=nrziletot-x1+x2;
int zistart=(zicur1+x2)%7;
out<<zistart+z0%7;
return 0;
}