Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Help for convert from PHP
Message
From
21/11/2011 07:30:00
 
 
To
21/11/2011 06:56:12
Metin Emre
Ozcom Bilgisayar Ltd.
Istanbul, Turkey
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01529341
Message ID:
01529344
Views:
45
Check this:
http://www.foxite.com/archives/convert-date-0000224322.htm


>Can anybody convert this code to VFP? I Tried but I don't know where am I wrong, mine is works wrong.
>
>/**
> * Divides two integers.
> *
> * @param int $a Integer to divide
> * @param int $b Integer to divide to
> * @return int
> */
>function div($a,$b) {
> return (int) ($a / $b);
>}
>
>/**
> * Converts gregorian to jalali calendar
> *
> * @param int $g_y The gregorian year
> * @param int $g_m The gregorian month
> * @param int $g_d The gregorian day
> * @return array The jalali date array
> */
>function gregorian_to_jalali($g_y, $g_m, $g_d) {
> $g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
> $j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
>
> $gy = $g_y-1600;
> $gm = $g_m-1;
> $gd = $g_d-1;
>
> $g_day_no = 365*$gy+div($gy+3,4)-div($gy+99,100)+div($gy+399,400);
>
> for ($i=0; $i < $gm; ++$i)
> $g_day_no += $g_days_in_month[$i];
> if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
> /* leap and after Feb */
> $g_day_no++;
> $g_day_no += $gd;
>
> $j_day_no = $g_day_no-79;
>
> $j_np = div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */
> $j_day_no = $j_day_no % 12053;
>
> $jy = 979+33*$j_np+4*div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */
>
> $j_day_no %= 1461;
>
> if ($j_day_no >= 366) {
> $jy += div($j_day_no-1, 365);
> $j_day_no = ($j_day_no-1)%365;
> }
>
> for ($i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i)
> $j_day_no -= $j_days_in_month[$i];
> $jm = $i+1;
> $jd = $j_day_no+1;
>
> return array($jy, $jm, $jd);
>}
>
>/**
> * Converts jalali to gregorian calendar
> *
> * @param int $j_y The jalali year
> * @param int $j_m The jalali month
> * @param int $j_d The jalali day
> * @return array The gregorian date array
> */
>function jalali_to_gregorian($j_y, $j_m, $j_d) {
> $g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
> $j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
>
> $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=0; $i < $jm; ++$i)
> $j_day_no += $j_days_in_month[$i];
>
> $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 = true;
> if ($g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
> {
> $g_day_no--;
> $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++;
> else
> $leap = false;
> }
>
> $gy += 4*div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */
> $g_day_no %= 1461;
>
> if ($g_day_no >= 366) {
> $leap = false;
>
> $g_day_no--;
> $gy += div($g_day_no, 365);
> $g_day_no = $g_day_no % 365;
> }
>
> for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)
> $g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);
> $gm = $i+1;
> $gd = $g_day_no+1;
>
> return array($gy, $gm, $gd);
>}
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform