Make your own free website on Tripod.com

صفحه های مرتبط

 

  صفحه اصلی > برنامه های نمونه > تبدیل تاریخ شمسی به میلادی

   

> پروژه های کامل

   برنامه تابلو تبلیغاتی الکترونیکی

   برنامه نمایش ساعت عقربه ای

   ذخیره تصاویر در SQL SERVER

   برنامه کامل نمایش تقویم میلادی

 

> کدهای نمونه

   مرورگر اینترنتی

   تبدیل تاریخ شمسی به میلادی

   مشاهده سورس صفحه وب

   پخش فایل های MP3 و WMA در کنسول

   کسب مشخصات درایوها

   ذخیره فایل در DB

 
 

   تبدیل تاریخ شمسی به میلادی   

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

قبل از هر کاری تابع زیر را به برنامه خود اضافه کنید. اگر برنامه شما کنسول می باشد بعد یا قبل از تابع Main و اگر فرمهای ویندوز یا وب می باشد در یکی از فرمها اضافه کنید. حتی می توانید در یک کلاس جداگانه قرار دهید تا همه فرمها و کلاسهای موجود در برنامه بتوانند به راحتی از آن استفاده کنند.


public string Shamsi(string date)
{
     int[] arrMonths ={ 31, 28, 31,30, 31, 30,31,31, 30, 31,30, 31 };
     int[] arrStart ={ 21, 20, 21, 21, 22, 22, 23, 23, 23, 23, 22, 22 };
     char[] sep ={ '/' };
     string[] arrDate = date.Split(sep);
     int year = Convert.ToInt32(arrDate[0]);
     int month = Convert.ToInt32(arrDate[1]);
     int day = Convert.ToInt32(arrDate[2]);

     if (year % 4 == 0)
     {
          for (int i = 2; i < 12; i++)
                    arrStart[i]--;
     arrMonths[1]++;
     if (month == 1)   arrStart[11]++;
     }
     else

     if (year % 4 == 1)
        {
        arrStart[0]--;
        arrStart[1]--;
        if (month == 1) arrStart[11]--;
        }
      year = month <= 3 ? year - 622 : year - 621;
      if (month == 3 && day >= arrStart[2]) year++;
      if (day < arrStart[month - 1])
      {
      int i = month == 1 ? 11 : month - 2;
      day = day - arrStart[i] + arrMonths[i] + 1;
      month -= 3;
      }
      else
      {
      day = day - arrStart[month - 1] + 1;
      month -= 2;
      }
      if (month <= 0) month += 12;
      return year + "/" + Convert.ToString(month).PadLeft(2,'0') +  "/" +
      Convert.ToString(day).PadLeft(2,'0');
}

تابع فوق یک رشته حاوی تاریخ میلادی را دریافت کرده به تاریخ شمسی تبدیل می کند و این تاریخ شمسی را به صورت یک رشته برمی گرداند.

حالا دو عنصر TextBox بر روی فرم قرار دهید و نام آنها را به ترتیب txtMilady و txtShamsi در نظر بگیرید. سپس یک عنصر Button بر روی فرم قرار داده، نام آن را btnConvert و عنوان آن را Convert در نظر بگیرید.

بر روی دکمه Convert دو بار کلیک کنید و کد زیر را در آن وارد کنید:



private void btnConvert_Click(object sender, EventArgs e)
{
    txtShamsi.Text = Shamsi(txtMilady.Text);
}

برنامه خود را اجرا کنید. در عنصر txtMilady یک تاریخ میلادی مثل 12/6/2004 وارد کنید و دکمه Convert را فشار دهید. امیدواریم نتیجه کار رضایت شما را جلب کرده باشد. اگر می خواهید از این تابع در کنسول استفاده کنید می توانید نتیجه کار خود را با استفاده از("Console.WriteLine("2004/6/12 ببینید.

ابتدای صفحهF  

  صفحه اصلی
    C# آموزش
    مفاهیم شی گرایی
    برنامه های نمونه
    کار با محیط
    معرفی کتاب
    نقشه سایت
    درباره ما
     
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
                               
[صفحه اصلی] [آموزش #C] [مفاهیم شی گرایی] [برنامه های نمونه] [کار با محیط] [معرفی کتاب] [نقشه سایت] [درباره ما]