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

نام تاپیک: تشخیص سال کبیسه در کلاس PersianCalendar

  1. #1

    تشخیص سال کبیسه در کلاس PersianCalendar

    دوستان همونطور که میدونید از دات نت 2 کلاس PersianCalendar به این فریمورک اضافه شد، که بهترین امکان برای کار با تاریخ فارسی و تبدیل به میلادی و ... هست
    اما سوال من اینه که با استفاده از این این کلاس چطور میتونیم سال کبیسه را تشخیص بدیم ؟
    نمیخوام از هیچگونه کامپوننت یا dll جداگونه استفاده کنم

  2. #2
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: تشخیص سال کبیسه در کلاس PersianCalendar

    نقل قول نوشته شده توسط ashkan209 مشاهده تاپیک
    دوستان همونطور که میدونید از دات نت 2 کلاس PersianCalendar به این فریمورک اضافه شد، که بهترین امکان برای کار با تاریخ فارسی و تبدیل به میلادی و ... هست
    اما سوال من اینه که با استفاده از این این کلاس چطور میتونیم سال کبیسه را تشخیص بدیم ؟
    نمیخوام از هیچگونه کامپوننت یا dll جداگونه استفاده کنم
    سلام دوست عزیز:
    این کلاس یک متد داره بنام IsLeapYear که یک سال رو میگیره و نتیجه رو بصورت True|False برگشت میده. در پیاده سازی این تابع از یک آرایه و یک تقسیم کوچک برای تشخیص سال کبیسه استفاده شده:
    میدونیم که در هر 33 سال 8 بار سال کبیسه اتفاق میفته با این حساب یک آرایه با 33 عضو خواهیم داشت که سه یکی درمیون مقدار 0 و 1 میگیرن. یعنی به شکل زیر:

    LeapYears33 = new int[] {
    0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0,
    0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,
    0
    };

    حالا با یک تقسیم ساده و بدست آوردن باقیمانده میتونیم سال کبیسه رو معین کنیم:
    (LeapYears33[year % 33] == 1);

    کل بدنه تابع هم میشه این:


    function IsLeapYear(int year)
    {
    int[] LeapYears33 = new int[] { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 };
    return (LeapYears33[year % 33] == 1);
    }

    اینم توضیحات بیشتر
    موفق باشید

  3. #3

    نقل قول: تشخیص سال کبیسه در کلاس PersianCalendar

    این کد فکر کنم جواب میده

    Dim p As New Globalization.PersianCalendar
    If p.IsLeapYear(1388) Then

    End If

  4. #4

    نقل قول: تشخیص سال کبیسه در کلاس PersianCalendar

    با تشکر از دوستان که جواب دادند
    و مشکل رو حل کردند
    بازم سپاس

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

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