نمایش نتایج 1 تا 5 از 5

نام تاپیک: فوری فوری : تابع تبدیل میلادی به شمسی

  1. #1

    فوری فوری : تابع تبدیل میلادی به شمسی

    لطفا برای 3 ماه آخر سال چک شود

  2. #2
    جستجو کردید؟؟؟؟
    You never know what you can do until you try

  3. #3
    تابع ذیل را اجرا کنید حتما جواب می گیرید.

    var
    G_M,G_D,G_Y,g_cur_date,date1,da_myear,da_mmonth,da _mday:String;
    a,da_cont,da_acc,y,m,d,da_sh1,da_sh2,da_sh3,da_sh4 ,da_sh5,da_sh6,da_me1,da_me3,da_me5,da_me7:integer ;
    da_me8,da_me10,da_me12,da_sh7,da_sh8,da_sh9,da_sh1 0,da_sh11,da_me6,da_me9,da_me11,da_me4:integer;
    da_sh12,da_me2,da_syear,da_smonth,da_sday:integer;

    begin
    da_cont:=1; da_acc:=0; da_sh1:=31; da_sh2:=31; da_sh3:=31; da_sh4:=31; da_sh5:=31; da_sh6:=31;
    da_me1:=31; da_me3:=31; da_me5:=31; da_me7:=31; da_me8:=31; da_me10:=31;da_me12:=31; da_sh7:=30;
    da_sh8:=30; da_sh9:=30; da_sh10:=30; da_sh11:=30;da_me4:=30; da_me6:=30; da_me9:=30; da_me11:=30;
    da_sh12:=29; da_me2:=28; da_syear:=0; da_smonth:=0;
    da_sday:=0; da_myear:='0'; da_mmonth:='0'; da_mday:='0';
    date1:=DateToStr(date);
    da_mday:=date1[9]+date1[10];
    da_mmonth:=date1[6]+date1[7];
    da_myear:=date1[1]+date1[2]+date1[3]+date1[4];
    If ((da_mmonth = '03') And (da_mday < '21')) Or (da_mmonth < '03') Then
    try
    da_syear := StrToInt(da_myear) - 622;
    Except
    on EConvertError do
    begin
    FormMain.MaskEditDate.ReadOnly:=False;
    Exit;
    end;
    end
    Else
    da_syear := StrToInt(da_myear) - 621;
    If (StrToInt(da_myear) Mod 4) <> 0 Then
    begin
    da_sh12 := 30;
    da_me2 := 29;
    End;
    If da_mmonth = '02' Then
    da_acc := da_acc + da_me1
    Else If da_mmonth = '03' Then
    da_acc := da_acc + da_me1 + da_me2
    Else If da_mmonth = '04' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3
    Else If da_mmonth = '05' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4
    Else If da_mmonth = '06' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 +da_me5
    Else If da_mmonth = '07' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6
    Else If da_mmonth = '08' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7
    Else If da_mmonth = '09' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8
    Else If da_mmonth = '10' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8 + da_me9
    Else If da_mmonth = '11' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8 + da_me9 + da_me10
    Else If da_mmonth = '12' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8 + da_me9 + da_me10 + da_me11;
    da_acc := da_acc + StrToInt(da_mday);
    If ((da_mmonth = '03') And (da_mday < '21')) Or (da_mmonth < '03') Then
    da_acc := da_acc + 286
    Else
    da_acc := da_acc - (da_sh11 + da_sh12 + 20);
    da_cont := 1;
    If da_acc <= da_sh1 Then
    begin
    da_smonth := 1;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1) <= da_sh2 Then
    begin
    da_acc := da_acc - da_sh1;
    da_smonth := 2;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2) <= da_sh3 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2;
    da_smonth := 3;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3) <= da_sh4 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3;
    da_smonth := 4;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4) <= da_sh5 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4;
    da_smonth := 5;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5) <=da_sh6 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5;
    da_smonth := 6;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6) <= da_sh7 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6;
    da_smonth := 7;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7) <= da_sh8 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7;
    da_smonth := 8;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8) <= da_sh9 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8;
    da_smonth := 9;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9) <= da_sh10 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9;
    da_smonth := 10;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10) <= da_sh11 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10;
    da_smonth := 11;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10 - da_sh11) <= da_sh12 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10 - da_sh11;
    da_smonth := 12;
    da_sday := da_acc;
    end;
    If (da_mmonth = '03') And (da_mday = '20') Then
    begin
    a := da_syear + 2;
    If (da_cont Mod 4) = 0 Then
    da_sday := 30
    Else
    da_sday := 29;
    end;
    y := da_syear - 1300;
    m := da_smonth;
    d := da_sday;
    if (da_smonth<10) and (da_sday<10) then
    MaskEditDate.Text:=IntToStr(y)+'0'+IntToStr(m)+'0' +IntToStr(d)
    else
    if (da_smonth<10) then
    MaskEditDate.Text:=IntToStr(y)+'0'+IntToStr(m)+Int ToStr(d)
    else
    if (da_sday<10) then
    MaskEditDate.Text:=IntToStr(y)+IntToStr(m)+'0'+Int ToStr(d)
    else
    MaskEditDate.Text:=IntToStr(y)+IntToStr(m)+IntToSt r(d);
    End;

  4. #4
    یه کامپوننت واست گذاشتم اینجا هم میذارم
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار kablayi
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    شیراز
    پست
    773

    Talking

    سلام ...
    با اجازه مجید جان .... کداتون اینجوری خونده نمیشه .... اینطوری بنویسش ...

    var
    G_M,G_D,G_Y,g_cur_date,date1,da_myear,da_mmonth,da _mday:String;
    a,da_cont,da_acc,y,m,d,da_sh1,da_sh2,da_sh3,da_sh4 ,da_sh5,da_sh6,da_me1,da_me3,da_me5,da_me7:integer ;
    da_me8,da_me10,da_me12,da_sh7,da_sh8,da_sh9,da_sh1 0,da_sh11,da_me6,da_me9,da_me11,da_me4:integer;
    da_sh12,da_me2,da_syear,da_smonth,da_sday:integer;

    begin
    da_cont:=1; da_acc:=0; da_sh1:=31; da_sh2:=31; da_sh3:=31; da_sh4:=31; da_sh5:=31; da_sh6:=31;
    da_me1:=31; da_me3:=31; da_me5:=31; da_me7:=31; da_me8:=31; da_me10:=31;da_me12:=31; da_sh7:=30;
    da_sh8:=30; da_sh9:=30; da_sh10:=30; da_sh11:=30;da_me4:=30; da_me6:=30; da_me9:=30; da_me11:=30;
    da_sh12:=29; da_me2:=28; da_syear:=0; da_smonth:=0;
    da_sday:=0; da_myear:='0'; da_mmonth:='0'; da_mday:='0';
    date1:=DateToStr(date);
    da_mday:=date1[9]+date1[10];
    da_mmonth:=date1[6]+date1[7];
    da_myear:=date1[1]+date1[2]+date1[3]+date1[4];
    If ((da_mmonth = '03') And (da_mday < '21')) Or (da_mmonth < '03') Then
    try
    da_syear := StrToInt(da_myear) - 622;
    Except
    on EConvertError do
    begin
    FormMain.MaskEditDate.ReadOnly:=False;
    Exit;
    end;
    end
    Else
    da_syear := StrToInt(da_myear) - 621;
    If (StrToInt(da_myear) Mod 4) <> 0 Then
    begin
    da_sh12 := 30;
    da_me2 := 29;
    End;
    If da_mmonth = '02' Then
    da_acc := da_acc + da_me1
    Else If da_mmonth = '03' Then
    da_acc := da_acc + da_me1 + da_me2
    Else If da_mmonth = '04' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3
    Else If da_mmonth = '05' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4
    Else If da_mmonth = '06' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 +da_me5
    Else If da_mmonth = '07' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6
    Else If da_mmonth = '08' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7
    Else If da_mmonth = '09' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8
    Else If da_mmonth = '10' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8 + da_me9
    Else If da_mmonth = '11' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8 + da_me9 + da_me10
    Else If da_mmonth = '12' Then
    da_acc := da_acc + da_me1 + da_me2 + da_me3 + da_me4 + da_me5 + da_me6 + da_me7 + da_me8 + da_me9 + da_me10 + da_me11;
    da_acc := da_acc + StrToInt(da_mday);
    If ((da_mmonth = '03') And (da_mday < '21')) Or (da_mmonth < '03') Then
    da_acc := da_acc + 286
    Else
    da_acc := da_acc - (da_sh11 + da_sh12 + 20);
    da_cont := 1;
    If da_acc <= da_sh1 Then
    begin
    da_smonth := 1;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1) <= da_sh2 Then
    begin
    da_acc := da_acc - da_sh1;
    da_smonth := 2;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2) <= da_sh3 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2;
    da_smonth := 3;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3) <= da_sh4 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3;
    da_smonth := 4;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4) <= da_sh5 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4;
    da_smonth := 5;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5) <=da_sh6 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5;
    da_smonth := 6;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6) <= da_sh7 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6;
    da_smonth := 7;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7) <= da_sh8 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7;
    da_smonth := 8;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8) <= da_sh9 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8;
    da_smonth := 9;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9) <= da_sh10 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9;
    da_smonth := 10;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10) <= da_sh11 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10;
    da_smonth := 11;
    da_sday := da_acc;
    end
    Else If (da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10 - da_sh11) <= da_sh12 Then
    begin
    da_acc := da_acc - da_sh1 - da_sh2 - da_sh3 - da_sh4 - da_sh5 - da_sh6 - da_sh7 - da_sh8 - da_sh9 - da_sh10 - da_sh11;
    da_smonth := 12;
    da_sday := da_acc;
    end;
    If (da_mmonth = '03') And (da_mday = '20') Then
    begin
    a := da_syear + 2;
    If (da_cont Mod 4) = 0 Then
    da_sday := 30
    Else
    da_sday := 29;
    end;
    y := da_syear - 1300;
    m := da_smonth;
    d := da_sday;
    if (da_smonth<10) and (da_sday<10) then
    MaskEditDate.Text:=IntToStr(y)+'0'+IntToStr(m)+'0' +IntToStr(d)
    else
    if (da_smonth<10) then
    MaskEditDate.Text:=IntToStr(y)+'0'+IntToStr(m)+Int ToStr(d)
    else
    if (da_sday<10) then
    MaskEditDate.Text:=IntToStr(y)+IntToStr(m)+'0'+Int ToStr(d)
    else
    MaskEditDate.Text:=IntToStr(y)+IntToStr(m)+IntToSt r(d);
    End;

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •