PDA

View Full Version : سوال: جمع دو تاریخ



mahdidabaghi
جمعه 06 خرداد 1390, 22:54 عصر
سلام
من میخوام تاریخ شمسی امروز رو که در یه textbox قرار داره(تا اینجاشو خودم بلدم) , به اون یه مقدار روز دیگه (مثلا 20 روز ) اضافه کنم (البته به صورت اتومات) و حاصل رو تو یه textbox دیگه با فرمت تاریخ شمسی قرار بدم
از دوستان تقاضا دارم لطف کنن راهنمایی بفرماین چجوری میشه این عملیات جمع رو انجام بدم؟
ممنونم

mahdidabaghi
شنبه 07 خرداد 1390, 00:13 صبح
جون من کمک کنید
بد جور توش گیرم و خیلی زود لازم دارم
باید زودی پروژمو تحویل بدم

unknown.unforgiven
شنبه 07 خرداد 1390, 00:28 صبح
میتونی یه زیر برنامه واسه محاسبه تاریخ فردا بنویسی، بعد تو یه حلقه n تایی بندازیش (n روز به تاریخت اضافه میشه)

S.Reza
شنبه 07 خرداد 1390, 17:19 عصر
سلام
من میخوام تاریخ شمسی امروز رو که در یه textbox قرار داره(تا اینجاشو خودم بلدم) , به اون یه مقدار روز دیگه (مثلا 20 روز ) اضافه کنم (البته به صورت اتومات) و حاصل رو تو یه textbox دیگه با فرمت تاریخ شمسی قرار بدم
از دوستان تقاضا دارم لطف کنن راهنمایی بفرماین چجوری میشه این عملیات جمع رو انجام بدم؟
ممنونم

سلام

اگر درست متوجه شده باشم شما تاریخ امروز رو در یک تکست باکس دارید و نیاز دارید که به این تاریخ n روز اضافه کنید


DateTime dt = new DateTime(1390, 3, 7);
MessageBox.Show(dt.AddDays(30).ToShortDateString() );

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

Reza_Yarahmadi
شنبه 07 خرداد 1390, 18:40 عصر
سلام

اگر درست متوجه شده باشم شما تاریخ امروز رو در یک تکست باکس دارید و نیاز دارید که به این تاریخ n روز اضافه کنید


DateTime dt = new DateTime(1390, 3, 7);
MessageBox.Show(dt.AddDays(30).ToShortDateString() );

تاریخ رو به صورت دستی وارد کردم
این روش تاریخ رو بصورت میلادی مورد پردازش قرار میده. برای امتحان ماه رو به 2 تغییر بدید و همین کد رو امتحان کنید.

من میخوام تاریخ شمسی امروز رو که در یه textbox قرار داره(تا اینجاشو خودم بلدم) , به اون یه مقدار روز دیگه (مثلا 20 روز ) اضافه کنم (البته به صورت اتومات) و حاصل رو تو یه textbox دیگه با فرمت تاریخ شمسی قرار بدم
میتونید بصورت زیر عمل کنید.
System.Globalization.PersianCalendar x = new System.Globalization.PersianCalendar();
DateTime now = x.ToDateTime(1389, 3, 7, 0, 0, 0, 0);
now = now.AddDays(20);
MessageBox.Show(x.GetYear(now) + "/" + x.GetMonth(now) + "/" + x.GetDayOfMonth(now));

mahdidabaghi
یک شنبه 08 خرداد 1390, 01:10 صبح
ازتک تک دوستان صمیمانه تشکر می کنم
من با اجازه شما این کدها رو یه امتحانی میزنم و جوابشو خدمتتون عرض میکنم

mahdidabaghi
یک شنبه 08 خرداد 1390, 01:43 صبح
میشه بفرمایین چجوری من این تو این قسمت میتونم به صورت اتومات تاریخ اوروز قرار بدم؟(بجای 1389,3,7)
DateTime now = x.ToDateTime(1389, 3, 7, 0, 0, 0, 0
شرمنده و ممنونم

saeidfar
یک شنبه 08 خرداد 1390, 08:56 صبح
كلا به نظر من جمع دوتاريخ معناي منطقي نداره. صورت مسئله اشتباهه!!!
يعني امسال رو با پارسال جمع بزني؟؟؟؟:متعجب: چي ازش در مياد:گیج:
اما اينو ميشه گفت كم كردن يا زياد كردن يه عدد از يه تاريخ!
حالا اگه مبنا روز باشه يعني چند روز كم يا ياد كنيم سه شرط داره
استفاده از تابع بازگشتي : از تاريخي كه ميخواهيم كم يا زياد كنيم خيلي مهمه كه در 6 ماهه اول باشه يا ششماه دوم حالا اگه عدد بيشتر از 365 روز باشه يا كمتر
بيشتر باشه مابه تفاوتش رو نگه ميداريم يكي به سال اضافه ميكنيم دوباره تابع رو فراخواني مي كنيم
اگه كمتر از 265 باشه چك ميكنيم بيشتر از 30 روزه يا كمتر اگه بيشتر از 30 باشه ...
بقيش رو خودتون حدث بزنيد

saeidfar
یک شنبه 08 خرداد 1390, 08:58 صبح
ضمنا سال كبيسه رو هم در نظر بگيريد

b_savad
یک شنبه 08 خرداد 1390, 09:01 صبح
سلام
یه فایل می دم
می تونی ازش استفاده کنی که هم برای تبدیل تاریخ از شمسی به میلادی و برعکسه
اول تاریخ شمسی رو تبدیل کن به میلادی
بعد چند روز که می خوای بهش اضافه کن
بعد تاریخ میلادی رو تبدیل کن به شمسی
این کد هم برای اضافه کردن روز برای تاریخ میلادیه
miladi=miladi.AddDays(3);

mahdidabaghi
یک شنبه 08 خرداد 1390, 11:45 صبح
آقا از لطفتون خیلی ممنون
در اولین فرصت نتیجه رو بهتون میگم

mahdighorbani
یک شنبه 08 خرداد 1390, 12:58 عصر
اینجا رو یه نگاه بنداز همه کارهایی رو که میخوای انجام میده

http://barnamenevis.org/showthread.php?285331-کامپوننت-تقویم-شمسی&p=1257180#post1257180




SolarDateTime SolarDT = new SolarDateTime(1389, 2, 31); // ساخت تاریخ دستی
SolarDT = SolarDateTime.Now; // تاریخ و زمان امروز
SolarDT = SolarDateTime.GregorianToSolar(DateTime.Now); // تبدیل میلادی به شمسی
SolarDT = new SolarDateTime(DateTime.Now);// تبدیل میلادی به شمسی

SolarDT = SolarDT.AddDays(20);//اضافه کردن تعداد دلخواه روز
SolarDT = SolarDT.AddHours(-400); //کم کردن تعداد دلخواه ساعت

SolarDT = SolarDateTime.Parse("1390/3/11 09:09:51 PM"); // تبدیل رشته به تاریخ
DateTime DT = SolarDT.GregorianDateTime; // تبدیل شمسی به میلادی
DT = SolarDateTime.SolarToGregorian(SolarDT); // تبدیل شمسی به میلادی

label1.Text = SolarDT.ToString(); // 1390/2/26 05:09:51 AM
label1.Text = SolarDT.ToLongDateString(); //دوشنبه 26 اردیبهشت 1390
label1.Text = SolarDT.ToShortDateString(); //1390/2/26
label1.Text = SolarDT.ToLongTimeString(); //05:09:51 AM
label1.Text = SolarDT.ToShortTimeString(); //05:09 AM

mahdidabaghi
یک شنبه 08 خرداد 1390, 13:06 عصر
hاز لطفت خیلی ممنونم
دم همه بروبچ برنامه نویس گرم