private int[] islToGer(int y, int m, int d, int diff) {
        int jd=intPart((11*y+3)/30)+354*y+30*m-intPart((m-1)/2)+d+1948440-385-diff;     
        if (jd> 2299160 ){
            int l=jd+68569;
            int n=intPart((4*l)/146097);
            l=l-intPart((146097*n+3)/4);
            int i=intPart((4000*(l+1))/1461001);
            l=l-intPart((1461*i)/4)+31;
            int j=intPart((80*l)/2447);
            d=l-intPart((2447*j)/80);
            l=intPart(j/11);
            m=j+2-12*l;
            y=100*(n-49)+i+l;
        }else{
            int j=jd+1402;
            int k=intPart((j-1)/1461);
            int l=j-1461*k;
            int n=intPart((l-1)/365)-intPart(l/1461);
            int i=l-365*n+30;
            j=intPart((80*i)/2447);
            d=i-intPart((2447*j)/80);
            i=intPart(j/11);
            m=j+2-12*i;
            y=4*k+n+i-4716;
        }

        int[] res = new int [3];
        res[0] = d;
        res[1] = m;
        res[2] = y;
        return res;
    }