با سلام به همگی
من یه گرید ویو دارم که میخام توش تقویم یک سال رو تعریف کنم مثلا سال 90
میخام وقتی تاریخو وارد کردم تو سلول بعدی روزش بشینه مثلا زدم 09/04 بشینه جمعه
لطفا راهنمایی کنید
با سلام به همگی
من یه گرید ویو دارم که میخام توش تقویم یک سال رو تعریف کنم مثلا سال 90
میخام وقتی تاریخو وارد کردم تو سلول بعدی روزش بشینه مثلا زدم 09/04 بشینه جمعه
لطفا راهنمایی کنید
سلام
با استفاده از کلاس PersianCalendar تاریخ شمسی را به میلادی تبدیل کنید سپس از خاصیت DayOfWeek شماره روز هفته را بدست آوردید و با یک تابع شماره را به نام هفته تبدیل کنید دقت شود روز شنبه 0 و یکشنبه 1 و ... می باشد
ممنون از راهنمایی تون
من کدشو رو دوتا txtbox امتحان کردم جوابی که میخامو گرفتم مشکل اینجاست که بلد نیستم این کد رو چه جوری تو دیتاگرید ویو بنویسم!
چه جوری بهش بگم سلول (مربوط به روز هفته) وقتی تاریخ رو (وقتی تو سلول مربوط به تاریخ) وارد کردم برابر نتیجه بشه؟
dataGridView1.CurrentRow.Cells["فیلد"].Value = "شنبه";
من برای انجام تبدیلات تاریخ به سه تا متغیر سال و ماه و روز از جنس int احتیاج دارم. مثل کد زیر که مربوط به ساله
int year = Convert.ToInt32(dgv_taghvim .CurrentRow .Cells [1].Value .ToString ().Substring(0, 4));
اول اینکه نمیدونم تو کدوم رویداد گرید ویو کد رو بنویسم؟
دوم اینکه ( Substring(0, 4 درمورد maskedtextbox جواب میده که فرمت 0000/00/00 رو براش تعریف میکنم اما سلولای گرید ویو textbox هست ! نمیتونم این فرمتو براش ایجاد کنم!
این تابع شاید مفید باشه:
private static DateTime ParseDate(string str)
{
int fSlash = str.IndexOf('/'),
sSlash = str.IndexOf('/', fSlash + 1);
return new DateTime(short.Parse(str.Substring(0, fSlash)),
short.Parse(str.Substring(fSlash + 1, sSlash - fSlash - 1)),
short.Parse(str.Substring(sSlash + 1, str.Length - sSlash - 1)));
}
اگر به بهداشت و سلامت حیوانات علاقه دارید، از vetMD.ir دیدن کنید.
وبلاگ شخصی من: fadavi.net
اینجا کمتر سر میزنم. (تلگرام من)
فقط یک نکته بگم در موقع استفاده از تابع فوق حتما از بلوک try...catch استفاده کنید. چون اگر کاربر اشتباهی چیزی وارد کنه یک استثنا (Exception) پرتاب میشه...
اگر به بهداشت و سلامت حیوانات علاقه دارید، از vetMD.ir دیدن کنید.
وبلاگ شخصی من: fadavi.net
اینجا کمتر سر میزنم. (تلگرام من)
یک چیز جالب بگم؟!
اصلا از تابع فوق استفاده نکنید!
string anyStr = "1390/2/4";
DateTime dt;
try
{
dt = DateTime.Parse(anyStr);
}
catch(Exception ex)
{
// Do Something
}
اگر به بهداشت و سلامت حیوانات علاقه دارید، از vetMD.ir دیدن کنید.
وبلاگ شخصی من: fadavi.net
اینجا کمتر سر میزنم. (تلگرام من)
تو کدوم رویداد گرید ویو کد رو بنویسم؟
تو cellmouseclick نوشتم اصلا جواب نداد . تو keypress جواب میده ولی فقط در مورد یک سطر!
سلام
می تونید از رویدادهای cellEndEdit یا cellLeave استفاده کنید که کاربر بعد از زدن Tab یا کلیدهای جهت، نتیجه رو ببینه.
از این کدها هم می تونید استفاده کنید
privatevoid dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
char[] charr = dataGridView1.CurrentRow.Cells[0].Value.ToString().ToCharArray();
string mah = charr[5].ToString() + charr[6].ToString();
string sal = charr[0].ToString() + charr[1].ToString() + charr[2].ToString() + charr[3].ToString();
string rooz = charr[8].ToString() + charr[9].ToString();
}
اگه بخوایم موقع لود شدن فرم تاریخ میلادی رو از هر سطر گریدویو بگیریم و به شمسی تبدیل کنیم و توی هر سطر جداگانه که تاریخش رو تبدیل کردیم بزاریمش سر جاش توی کدوم رویداد بنویسیم؟
cellendedit or cellformatting کدوم بهتره؟
موفق باشیدPersianCalendar p = new PersianCalendar();
DateTime dmiladi = new DateTime();
dmiladi = DateTime.Now;
switch (p.GetDayOfWeek(dmiladi).ToString().ToLower())
{
case "saturday": LbDay.Text = "شنبه";
break;
case "sunday": LbDay.Text = "یکشنبه";
break;
case "monday": LbDay.Text = "دوشنبه";
break;
case "tuesday": LbDay.Text = "سه شنبه";
break;
case "wednesday": LbDay.Text = "چهارشنبه";
break;
case "thursday": LbDay.Text = "پنجشنبه";
break;
case "friday": LbDay.Text = "جمعه";
break;
}