PDA

View Full Version : اضافه کردن عدد به روز تقویم فارسی



jmfnima
جمعه 13 آبان 1390, 18:33 عصر
با سلام به همه دوستان
من بر روی یکی از فرم های خودم از یک کامپوننت به نام DateBox.dll استفاده کردم که تاریخ رو از سیستم میگیره و به صورت شمسی نشون میده و همچنین از دو تکس باکس و یک باتون استفاده کردم حالا میخوام وقتی که داخل تکس باکس اول هر عددی رو وارد کردیم با فشردن کلید این عدد با مقدار روز تاریخ شمسی کامپوننت جمع بشه و توی تکس باکس دوم نشون داده بشه به طوری که اگر تاریخ 1390/08/29 باشه و وقتی توی تکس باکس اول عدد 2 رو وارد کردیم بعد از فشردن کلید ، توی تکس باکس دوم تاریخ 1390/09/01 نشون داده بشه .

mohandes1381
جمعه 13 آبان 1390, 19:59 عصر
برای این کار از PersianCalendar استفاده کنید. ابتدا در بخش Using فرمتون عبارت using System.Globalization رو بنویسید. هر جایی که خواستید از اون استفاده کنید یک نمونه از persiancalendar به صورت زیر بسازید:

PersianCalendar pc = new PersianCalendar();
و از متد AddDays مربوط به pc ساخته شده برای اضافه کردن روز استفاده کنید.

jmfnima
شنبه 14 آبان 1390, 14:29 عصر
با سلام و تشكر از شما دوست عزيز
با اين روشي كه شما فرموديد و تقويم فارسي (pc) رو ايجاد كردم وقتي از متد adddays براي اضافه كردن عدد به روز استفاده مي كنم توي تكس باكس من اين عدد رو به تاريخ ميلادي سيستم اضافه ميكنه و در اين تكس باكس تاريخ ميلادي رو نشون ميده در ضمن حتي وقتي اين عدد به تاريخ ميلادي اضافه ميشه ( مثلا عدد 20 به تاريخ 2011/10/25 ) ماه عوض نميشه بلكه عدد 20 با 25 جمع ميشه و عدد 45 رو براي روز تاريخ ميلادي نشون ميده .

mohandes1381
شنبه 14 آبان 1390, 18:51 عصر
از کامپوننتی که داری تاریخ میلادی رو بگیر و درون یک متغیر قرار بده:


DateTime dt = (DateTime)datetime;

در اینجا datetime همون تاریخ میلادی شماست. چون dt رو از نوع تاریخ تعریف کردی میتونیم بهش روز اضافه کنیم:


dt = dt.AddDays(int.Parse(txtDaysCount.Text.ToString()) );

حالا کافیه که این رو به فارسی تبدیل کنیم و در text box دیگرتون قرار بدیم:


PersianCalendar pc = new PersianCalendar();
string Year = pc.GetYear(dt).ToString();
string Month = pc.GetMonth(dt).ToString("D2");
string Day = pc.GetDayOfMonth(dt).ToString("D2");
textBox1.Text = Year + "/" + Month + "/" + Day;