>CLEAR >SET DATE AMERICAN >SET DATE GERMAN >? DATE(1430,4,15) >? ConvertHijriDateToGregorianDate(DATE(1430,4,15)) >? ConvertGregorianDateToHijriDate(DATE(2009,4,11)) > >Function ConvertHijriDateToGregorianDate(ldHijriDate) > d = DAY(ldHijriDate) > m = MONTH(ldHijriDate) > y = YEAR(ldHijriDate) > jd = INT((11 * m.y + 3) / 30) + 354 * m.y + 30 * m.m - INT((m.m- 1 )/ 2) + m.d + 1948440 - 385 > IF (m.jd > 2299160 ) > l = m.jd + 68569 > n = INT((4 * m.l) / 146097) > l = m.l - INT((146097 * m.n + 3) / 4) > i = INT((4000*(m.l+1)) / 1461001) > l = m.l - INT((1461*m.i)/4)+31 > j = INT((80*m.l)/2447) > d = l-INT((2447*m.j)/80) > l = INT(m.j/11) > m = m.j+2-12*l > y = 100*(m.n-49)+m.i+m.l > ELSE > j = m.jd + 1402 > k = INT((m.j-1)/1461) > l = m.j-1461*m.k > n = INT((m.l-1)/365)-INT(m.l/1461) > i = m.l-365*n+30 > j = INT((80*m.i)/2447) > d = i-INT((2447*m.j)/80) > i = INT(m.j/11) > m = m.j+2-12*m.i > y = 4*m.k+m.n+m.i-4716 > ENDIF > >RETURN DATE(m.y, m.m, m.d) > >Function ConvertGregorianDateToHijriDate(ldGregorianDate) >ASSERT .f. > d = DAY(ldGregorianDate) > m = MONTH(ldGregorianDate) > y = YEAR(ldGregorianDate) > IF ldGregorianDate > DATE(1582,10,14) > jd = INT((1461*(m.y+4800+INT((m.m-14)/12)))/4)+; > INT((367*(m.m-2-12*(INT((m.m-14)/12))))/12)-; > INT( (3* (INT( (m.y+4900+INT((m.m-14)/12))/100)))/4)+m.d-32075 > ELSE > jd = 367*m.y-INT((7*(m.y+5001+INT((m.m-9)/7)))/4)+INT((275*m.m)/9)+m.d+1729777 > ENDIF > l = m.jd - 1948440 + 10632 > n = INT((m.l-1)/10631) > l = m.l-10631*m.n+354 > j = (INT((10985-m.l)/5316))*(INT((50*m.l)/17719))+(INT(m.l/5670))*(INT((43*m.l)/15238)) > l = m.l - (INT((30-m.j)/15))*(INT((17719*m.j)/50))-(INT(j/16))*(INT((15238*m.j)/43))+29 > m = INT((24*m.l)/709) > d = m.l - INT((709*m.m)/24) > y = 30 * m.n + m.j - 30 > ? m.y, m.m, m.d >RETURN DATE(m.y, m.m, m.d) >So, when VFP starts on your system, it is configured to be SET DATE GERMAN? Sounds like you've found an edge-case bug.