Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Help for convert from PHP
Message
De
21/11/2011 10:11:38
Metin Emre
Ozcom Bilgisayar Ltd.
Istanbul, Turquie
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
01529341
Message ID:
01529380
Vues:
29
You're the man!!!

>The jalaliToGregorian should be changed to this:
>
>
>FUNCTION jalaliToGregorian(j_y, j_m, j_d) 
>   jy = j_y-979
>   jm = j_m-1
>   jd = j_d-1
>
>   j_day_no = 365*jy + div(jy, 33)*8 + div(jy%33+3, 4)
>   for i=1 TO jm
>      j_day_no = j_day_no + j_days_in_month[i] 
>   NEXT
>
>   j_day_no = j_day_no + jd
>
>   g_day_no = j_day_no+79
>
>   gy = 1600 + 400*div(g_day_no, 146097) &&/* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */ 
>   g_day_no = g_day_no % 146097
>
>   leap = .t.
>   if (g_day_no >= 36525) &&/* 36525 = 365*100 + 100/4 */ 
>      g_day_no = g_day_no - 1
>      gy = gy + 100*div(g_day_no,  36524) &&/* 36524 = 365*100 + 100/4 - 100/100 */ 
>      g_day_no = g_day_no % 36524
>
>      if (g_day_no >= 365) 
>          g_day_no = g_day_no + 1
>      else 
>         leap = .f.
>      ENDIF   
>   ENDIF 
>
>   gy = gy + 4*div(g_day_no, 1461) && /* 1461 = 365*4 + 4/4 */ 
>   g_day_no = g_day_no % 1461 
>
>   if (g_day_no >= 366)
>      leap = .f.
>
>      g_day_no = g_day_no - 1  
>      gy       = gy + div(g_day_no, 365)
>      g_day_no = g_day_no % 365 
>   ENDIF
>
>   i = 1
>   DO WHILE g_day_no >= (g_days_in_month[i] + IIF(i == 2 AND leap, 1, 0))
>      g_day_no = g_day_no - (g_days_in_month[i] + IIF(i == 2 AND leap, 1, 0)) && This is the culprit :-) 
>      i = i + 1
>   ENDDO
>   gm = i 
>   gd = g_day_no+1 
>   oReturn = CREATEOBJECT([EMPTY])
>   ADDPROPERTY(oReturn,[Year], gy)
>   ADDPROPERTY(oReturn,[Month], gm)
>   ADDPROPERTY(oReturn,[Day], gd)
>   
>RETURN oReturn
>
>
>Or at least I think so :o))))))
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform