h_mohamadi
پنج شنبه 19 فروردین 1389, 17:19 عصر
سلام دوستان من نياز به فاکنشن تبديل تاريخ شمسي به ميلادي دارم اگر لطف کنيد من را راهنمايي فرمائيد
جواد ملاولی
پنج شنبه 19 فروردین 1389, 20:00 عصر
سلام. چرا از کامپوننت تاریخ شمسی آقای خورسندی استفاده نمی کنی؟
http://barnamenevis.org/forum/showthread.php?t=110628
alidehban
شنبه 21 فروردین 1389, 01:48 صبح
سلام...
غیر از کامپوننت استاد خورسندی این توابع هم هستن...
h_mohamadi
سه شنبه 24 فروردین 1389, 12:23 عصر
سلام دوستان این هم فاکشن دلفی
Function shamsi2miladi(date:String):String;
var
y,m,d:Integer;
begin
y := StrToInt(copy(shdate,1,4));
m := StrToInt(copy(shdate,5,2));
d := StrToInt(copy(shdate,7,2));
If (m < 10) Or ((m = 10) And (d < 11)) Then
  y := y + 621
   Else
     y := y + 622;
Case m  of
 1: If d < 12 Then
   begin
    m := 3;
     d := d + 20;
   end
      Else
       begin
         m := 4;
         d := d - 11;
        end;
 2: If d < 11 Then
     begin
      m := 4;
      d := d + 20;
     end
      Else
        begin
         m := 5;
         d := d - 10;
        end;
 3: If d < 11 Then
     begin
      m := 5;
      d := d + 21;
     end
      Else
       begin
        m := 6;
        d:= d - 10;
       end;
 4: If d < 10 Then
     begin
      m := 6;
      d := d + 21;
     end
       Else
        begin
         m := 7;
         d := d - 9;
        end;
 5, 6, 8: If d < 10 Then
          begin
           m := m + 2;
           d := d + 22;
           end
            Else
             begin
              m := m + 3;
              d:=d-9;
             end;
 7: If d < 9 Then
     begin
      m := 9;
      d := d + 22;
     end
      Else
       begin
        m := 10;
        d := d - 8 ;
       end;
 9: If d < 10 Then
     begin
      m := 11;
      d := d + 21;
     end
       Else
        begin
         m := 12;
         d := d - 9 ;
        end;
 10: If d < 11 Then
      begin
       m := 12;
       d := d + 21;
      end
        Else
          begin
           m := 1;
           d := d - 10 ;
          end;
 11: If d < 12 Then
       begin
        m := 1;
         d := d + 20;
       end
         Else
          begin
           m := 2;
           d := d - 11;
          end;
 12: If d < 10 Then
       begin
        m := 2;
        d := d + 19;
       end
         Else
          begin
           m := 3;
           d := d - 9;
          end;
End;
Result:=IntToStr(y)+'/'+Copy('0'+IntToStr(m),Length(IntToStr(m)),2)+'/'+Copy('0'+IntToStr(D),Length(IntToStr(D)),2);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.