سلام.
من می خواستم یک عدد (روز) رو با یک تاریخ جمع کنم مثلا:
1392/05/08
بعلاوه 6 روز
که میشه:
1392/05/16
لطفا کمک کنید
راستی تعداد روز ها میتونه بیشتر از یک ما یا یک سال باشه.
سلام.
من می خواستم یک عدد (روز) رو با یک تاریخ جمع کنم مثلا:
1392/05/08
بعلاوه 6 روز
که میشه:
1392/05/16
لطفا کمک کنید
راستی تعداد روز ها میتونه بیشتر از یک ما یا یک سال باشه.
از چه نوع متغیری برای تاریخ استفاده می کنید؟
اگه از DateTime استفاده کنید. به راحتی میتونید از تابع AddDays استفاده کنید.
موفق باشید.
سلام مسلما باید مشخص باشه
روش هایی که دوستان فرمودن برای تاریخ میلادیه
برای تاریخ شمسی باید اول تاریخ خود رو به میلادی تبدیل کنید و بعد تعداد روز رو بهش اضافه کنید و دوباره به شمسی برگردونید
چون تعداد روزهای ماه در تاریخ میلادی و شمسی باهم تفاوت دارند
مثلا 5 روز اضافه کردن به تاریخ شمسی 1392/2/25 میشه 1392/2/30 ، در حالی که توی تاریخ میلادی میشه 1392/3/1 !!!!!!
اگه کامپوننت تاریخ شمسی می خواید، قبلا در سایت زیاد بحث شده، این نمونه کامپوننت تاریخ شمسی
https://barnamenevis.org/showthread.p...85%D8%B3%DB%8C
موفق باشید.
DateTime miladi = pc.ToDateTime(Int32.Parse(txtdate.Text.Substring(0 , 4)), Int32.Parse(txtdate.Text.Substring(5, 2)), Int32.Parse(txtdate.Text.Substring(8, 2)), 0, 0, 0, 0, 0);
miladi = miladi.AddDays(Int32.Parse(txtrooz.Text));
txtdate.Text = pc.GetYear(miladi).ToString() + pc.GetMonth(miladi).ToString("00") + pc.GetDayOfMonth(miladi).ToString("00");
txtdate همون تکست باکسیه که تاریخ توشه. مثلا به صورت 1392/05/08
txtrooz همون تعداد روزیه که باید اضافه شه.
البته using system.globalization رو فراموش نکن. و همچنین یک شی به نامpc از نوع persiancalender بساز
با سلام
دوستان چطوری میشه تو سی شارپ اعداد تصادفی تولید و بین اون تعداد اعداد تصادفی مثلا تنها یک عدد بر حسب درصد تولید شود
مثال:
میخواهیم 10 عدد از 1 تا 9 تولید کنیم و حالا باید بر حسب اون مقدار درصدی که مشخص است (ورودی از کاربر یا ثابت ) عدد 5 حتما باشد و به تعداد اون درصد تولید شود
مثال:
درصد تولیدی عدد 5 : 10 درصد
تعداد اعداد: 10
بازه تولیدی: 1-9
حالا باید خروجی مثلا این طوری بیاید: 1-9-5-3-2-1-4-7-6-8
همان طور که میبینید عدد 5 بر حسب درصد تولیدی تولید شده و در بین اعداد هست
ممنون میشم راهنمایی کنید
حال اینکه تولید عدد تصادفی با کد زیر است، من خروجی ها رو میریزم تو لیست باکس
ولی تو اون قسمت درصد مشکل دارم
Random rnd=new Random();
//int percept_rnd=10;
lst_numbers.Items.Clear();
for (int i = 1; i < 11; i++)
{
lst_numbers.Items.Add(rnd.Next(1, 10));
}
دوستان لطفا یه پیشنهادی بدین چی کار کنم...
آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 09 اسفند 1392 در 16:08 عصر
با سلام
با تو جه به این عکسها و سورس برنامه دوستان راهنمایی کنند ایراد برنامه کجاست که:
1- در عکس اول با اضافه کردن 1 روز و 1 ماه ==> 2 روز و یک ماه اضافه می شود؟
2- در عکس دوم با اضافه کردن 2 ماه ==> 2 ماه اضافه شده اما یک روز کم می شود؟
3- در عکس سوم با اضافه کردن 3 سال==> 3 سال و یک روز اضافه می شود؟
add_date1.JPG
add_date2.JPG
add_date3.JPG
این هم سورس 44.8 کیلو بایت
add_date.rar
آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 20 دی 1392 در 13:34 عصر
دوست عزیز من دقایقی روی این موضوع فکر کردم. کدی که شما نوشتی فکر نمی کنم غلط باشه ( حتی از لحاظ منطقی) ولی نمی دونم چه تفاوت های دیگه ای این وسط هست که بین تبدیل ها مشکل ساز میشه و نتیجه مورد انتظار ما حاصل نمیشه.
از طرفی من یه جور دیگه خواستم این مسئله را حل بکنم . ببین به نظرت من کجا اشتباه کردم؟ یا اصلا اشتباه کردم یا نه؟!!!
من می گم وقتی خود PersianCalender به ما روز و ماه و سال را به شمسی به ما درست میده چرا ما دستی روز و ماه و سال را اضافه نکنیم؟ چرا به DateTime خواهش کنیم که برای ما روز و ماه را اضافه یا هم کنه؟
تا اینجا را که خودش به ما میده :
PersianCalendar pc = new PersianCalendar();
string strdate = pc.GetYear(DateTime.Now).ToString() + "/" +
pc.GetMonth(DateTime.Now).ToString() + "/" +
pc.GetDayOfMonth(DateTime.Now).ToString();
txtDate.Text = strdate;
بعد ما به صورت دستی مقادیر روز و ماه و سال را به تاریخی که PC به ما داده اضافه می کنیم. با این شرطی که اگر ماه بین 1 تا 6 بود ، پس روز ها باید 31 روز حساب بشه و اگه ماه بعد از 6 تا 11 بود ماه 30 روز حساب بشه و اگه ماه 12 بود 29 روز حساب بشه و مگر اینکه سال کبیسه باشه و ما ماه 12 هم 30 روز حساب کنیم.
این الگوریتم منه یه نظرت اگه یه کلاس به این شکل بنویسیم چطوره؟ کجا های حرفم ایراد داره؟ فقط اینو در نظر داشته باش که شاید این مسئله را بعضی ها حل کرده باشن و به صورت یک DLL در آورده باشند ولی یک برنامه نویس باید خودش بدونه دقیقاٌ داره چه اتفاقی توی برنامه اش می افته به ویژه تاریخ که در حسابداری به شدت آسیب رسونه و باید کنترل بشه
منتظر نظر حضرت عالی ام.
آخرین ویرایش به وسیله Mousavmousab : جمعه 20 دی 1392 در 13:19 عصر
درست شد
اینم سورس اصلاح شده
add_date2.rar
سلام شاید دیر باشه ولی تفاوت خیلی آسونه
یا سال کبیسه هست یا سال کبیسه نیست.
اگر کبیسه بود ماه آخر را 30 روز در نظر می گیریم و اگر کبیسه نبود 29 روز
با تابع LeapYear از کلاس خود مایکروسافت می توان فهمید.
PersianCalendar pc = new PersianCalendar();
int CurrentYear = pc.GetYear(DateTime.Now);
if (pc.IsLeapYear(CurrentYear))
{
}
else
{
}