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

نام تاپیک: علت این خطا در تاریخ شمسی چیست؟

  1. #1

    علت این خطا در تاریخ شمسی چیست؟

    بسم الله الرحمن الرحیم
    با سلام خدمت دوستان عزیز
    علت این خطا در تاریخ شمسی چیست؟
    تاریخ زمانی که به ماه 11 می رسیم ماه را ماه 11 نشان می دهد ولی روزها از 31 روز بیشتر می شوند تا اینکه از روز 12 ماه مشکل برطرف می شود.
    سورس آن را گذاشته ام.
    متشکرم
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    نقل قول: علت این خطا در تاریخ شمسی چیست؟

    شما حتما در مورد روش نوشتن کد ها و اینکه چه طور بنویسیم تا خوانا تر باشه یه بررسی داشته باش .
    خوندن و فهمیدن این کدنویسی شما برای خود نویسندش مشکل است چه برسه به یک نفر دیگه .

    این شرط رو بر چه اساس بدست آوردی :
    case mi of
    1: if di<21 then
    begin
    mi:=10; di:=di+10;
    end
    else
    begin
    mi:=11; di:=di+10;
    end;
    end;

  3. #3

    نقل قول: علت این خطا در تاریخ شمسی چیست؟

    بنام خدا
    دوست عزیز سلام
    با عرض معذرت از سوء تفاهم پیش آمده
    این کد را با همین شکل من از همین سایت دانلود کردم
    ولی در استفاده با مشکل مواجه شدم
    حالا اون را برای شما کمی مرتب کردم

    Function shamsi(tt:tdatetime):string;
    Var
    str,y,m,d:string; yi,mi,di:integer;
    begin
    str:=datetostr(tt);
    y:=copy(str,1,4);
    m:=copy(str,6,2);
    d:=copy(str,9,2);
    yi:=strtoint(y);
    mi:=strtoint(m);
    di:=strtoint(d);
    if (yi mod 4=0) then if mi>2 then begin
    tt:=tt+1;
    str:=datetostr(tt);
    y:=copy(str,1,4);
    m:=copy(str,6,2);
    d:=copy(str,9,2);
    yi:=strtoint(y);
    mi:=strtoint(m);
    di:=strtoint(d);
    end;
    if ((mi<3) or ((mi=3) and (di<21))) then
    begin yi:=yi-622; end else begin yi:=yi-621;
    end;
    case mi of
    1: if di<21 then begin mi:=10; di:=di+10; end else begin mi:=11; di:=di+10;
    end;
    2: if di<20 then begin mi:=11; di:=di+11; end else begin mi:=12; di:=di-19;
    end;
    3: if di<21 then begin mi:=12; di:=di+9; end else begin mi:=1; di:=di-20;
    end;
    4: if di<21 then begin mi:=1; di:=di+11; end else begin mi:=2; di:=di-20;
    end;
    5: if di<22 then begin mi:=mi-3;di:=di+10; end else begin mi:=mi-2; di:=di-21;
    end;
    6: if di<22 then begin mi:=mi-3; di:=di+10;end else begin mi:=mi-2; di:=di-21;
    end;
    7: if di<23 then begin mi:=mi-3; di:=di+9; end else begin mi:=mi-2; di:=di-22;
    end;
    8: if di<23 then begin mi:=mi-3; di:=di+9; end else begin mi:=mi-2; di:=di-22;
    end;
    9: if di<23 then begin mi:=mi-3; di:=di+9; end else begin mi:=mi-2; di:=di-22;
    end;
    10:if di<23 then begin mi:=7; di:=di+8; end else begin mi:=8; di:=di-22;
    end;
    11:if di<22 then begin mi:=mi-3; di:=di+9; end else begin mi:=mi-2; di:=di-21;
    end;
    12:if di<22 then begin mi:=mi-3; di:=di+9; end else begin mi:=mi-2; di:=di-21;
    end;
    end;
    y:=inttostr(yi); m:=inttostr(mi);
    if (length(m)=1) then m:='0'+m; d:=inttostr(di);
    if length(d)=1 then d:='0'+d; shamsi:=y+'/'+m+'/'+d
    end;

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

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