> int weekno(int d, int m, int y)
> {
>   int n1, n2, w;
>   n1 = julian(d, m, y);
>   n2 = 7*(n1/7)+10;
>   y = y+1;
>   while ((w = (n2-julian(1,1,y))/7) <= 0) {
>     y = y-1;
>   }
>   return w;
> }
> 
> int julian(int d, int m, int y)
> {
>   int n1, n2;
>   n1 = 12*y+m-3;
>   n2 = n1/12;
>   return (734*n1+15)/24-2*n2+n2/4-n2/100+n2/400+d+1721119;
> }
