-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
کاکا جون ، بحث چیزه دیگه ایه!
من کاری که roolinjax گفت رو کردم ، ارور میده!
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
جناب کاکای عزیز ممنون از نظر لطفت
اما خوب شکلک خنده ای که دوستمون آقا صمد گذاشتن شاید برازنده ی این موقعیت نبوده.
هرکس روش کار خودشو داره
از اونجایی که تمام توابع و کلاس های نوشته شده برای تاریخ میلادی هستش پس استفاده از تاریخ شمسی اشتباه محضه.
ضمنا روش من سال کبیسه رو هم محاسبه می کنه.
در نهایت باید بگم که مشکل ما سر اس کیو ال نیست ، مشکل اینه که ویژوال استودیو و ودات نت با شمسی سازگاری نداره ، حالا باز آقا صمد عزیز که خیلی دوستش دارم و براش احترام قائلم بگه که DateTime2 استفاده کنم.
اون خط کدی که گفتم رو هرکی تست کنه متوجه عرایض من میشه.
از دوستانی که از حرفای من توی این تاپیک رنجیدن بالاخص جناب کاکای عزیز عذرخواهی می کنم.
موفق باشید
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
دوستان ، یه بار دیگه هم میگم که حق با roolinjax عزیزه!
این رو امتحان کنید تابفهمید :
DateTime myDateTime = DateTime.Parse("30/2/1391 23:10:30");
TimeSpan myTimeSpan = new TimeSpan(0, 1, 2, 4);
DateTime myDateTime8 = myDateTime - myTimeSpan;
MessageBox.Show("myDateTime - myTimeSpan = " + myDateTime8);
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
اگه بخوای همچین تاریخی رو نمایش بدی این ارور رو میدی :
نقل قول:
String was not recognized as a valid DateTime.
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
من تا حالا مشکلی با ذخیره کردن شمسی نداشتم.نمیدونم چرا دوستان اینقدر مشکل دارن؟
اگر ممکنه توضیح بدید چه کاری میخواهید بکنید که نیاز به DateTime داره؟
اون توابعی که من گزاشتم همه ی عملیات ه ممکن با تاریخ شمسی رو انجام میده.
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
سلام ، دوستان همگی ببخشید اگه لحن صحبت کردنمون یه کم نا مناسب بود ، قصد جسارت به کسی رو نداشتم.عزیزم اون شکلک خنده هم بی مورد بود و توین به کسی نبود اگه دویاره مطالعه کنید متوجه خواهید شد بر میگرده به خودم اگه کسی هم ناراحت شد ازش معذرت خواهی مینم.
نقل قول:
همچین گفتین TimeSpan فک کردم می خواید چه کار خارق العاده ای انجام بدید.
این کد شما هم که جواب نمیده !!!!! شکلک خنده !!!!
وقتی به حرف دقت نمی کنید همینه دیگه
توی خط اول من می خوام تاریخ 31 اردیبهشت رو وارد کنم ، شما راهنماییم کنید (شاید از کم صوادی منه که نمی تونم وارد کنم) میشه این خط رو برام بنویسید طوری که ارور نده ؟
در ضمن من از روشی که شما قبول ندارین استفاده می کنم (ثبت بصورت میلادی و نهایتا تبدیل به شمسی موقع نمایش)
منتظر جوابم ، البته اگر جوابی باشه !!!!
رولی عزیز ببین گفتم ، میگم این کار جواب میده شما تاریخ رو از کاربر (textbox) میگیرید توی دیتابیس به صورت مستقیم ذخیره میکنید از نوع datetime 2 این تاریخ .
موقع کم کردن تاریخ با هر مقایسه ای دیگه ای هم Substring از هم ماه /روز/سال رو جدا میکنید هر کدوم نیاز بود با تکیه کد زیر به سادگی بدست میارید دوست داشتید قالب رو تغییر میدید نیازی نبود دوباره مستقیم ذخیره کنید به راحتی هم ازش میشه توی گزارشامون ازش کوری گرفت چون استاندارد است.
DateTime myDateTime = DateTime.Parse("1391/5/10");
TimeSpan myTimeSpan = new TimeSpan(2, 0, 0, 0);
DateTime myDateTime8 = myDateTime - myTimeSpan;
MessageBox.Show( myDateTime8 .ToString ());
نقل قول:
دوستان ، یه بار دیگه هم میگم که حق با roolinjax عزیزه!
این رو امتحان کنید تابفهمید :
نقل قول:
اگه بخوای همچین تاریخی رو نمایش بدی این ارور رو میدی :
احسان جون ممنونم از کنجکاویتون سینتکس یه messagebox هم اینجور وارد کنید خطا میده ، لطفا پیگیری کنید تا...
DateTime myDateTime = DateTime.Parse("1391/5/10");
TimeSpan myTimeSpan = new TimeSpan(2, 0, 0, 0);
DateTime myDateTime8 = myDateTime - myTimeSpan;
MessageBox.Show( myDateTime8 .ToString ());
کاکای عزیز شما هم ببخشید.
همینطور کد های fastcode عزیز توی تاپیک برنامه های مفید تمامی معادلاتی محاسباتی ... رو شامل میشه.
موفق باشید./
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
صمد جان ، تو اصلن چیزی رو که من گفتم امتحان کردی؟
ببین از این تاریخ هم می تونی استفاده کنی؟ :
1391/2/30
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نقل قول:
صمد جان ، تو اصلن چیزی رو که من گفتم امتحان کردی؟
ببین از این تاریخ هم می تونی استفاده کنی؟ :
1391/2/30
عزیزه من ، جان من ،تو برنامه نویسی تو داری مستقیم از تاریخ شمسی به این شکل استفاده میکنید.
یعنی شما نباید یه شگرد در برنامه نویسی به خرج بدید !
نمیتونی از maskedtextbox استفاده کنی؟
نمی تونی از substring , split استفاده کنید.
نمیتونی تاریخ رو به صورت روز / ماه / سال بزاری توی سه کامبو جدا در کنار هم و از کاربر بگیری؟
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
آه خدا، صمد جان ، چرا اصلا سعی نمی کنی یکم بفهمی ما چی میگیم!
نقل قول:
عزیزه من ، جان من ،تو برنامه نویسی تو داری مستقیم از تاریخ شمسی به این شکل استفاده میکنید.
یعنی شما نباید یه شگرد در برنامه نویسی به خرج بدید !
نمیتونی از maskedtextbox استفاده کنی؟
نمی تونی از substring , split استفاده کنید.
نمیتونی تاریخ رو به صورت روز / ماه / سال بزاری توی سه کامبو جدا در کنار هم و از کاربر بگیری؟
اصلا ربطش چیه؟ من چی میگم ، تو میای و چی میگی!!!
اقا اصلا من معذرت می خوام ، من تو برنامه نویسی هیچی سرم نمی شه ، من ناوارد ، من .. .
دیگه حوصله ندارم دوباره توضیح بدم و این مسئله هی کش پیدا کنه ، تمامی مشکلات از طرف من بود و از شما مستقیما عذر خواهی می کنم.
شما راست میگی ، همه ی حرف های شما درسته ، من رو ببخشید اخه من هیچی نمی دونم.
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نقل قول:
آه خدا، صمد جان ، چرا اصلا سعی نمی کنی یکم بفهمی ما چی میگیم!
اصلا ربطش چیه؟ من چی میگم ، تو میای و چی میگی!!!
اقا اصلا من معذرت می خوام ، من تو برنامه نویسی هیچی سرم نمی شه ، من ناوارد ، من .. .
دیگه حوصله ندارم دوباره توضیح بدم و این مسئله هی کش پیدا کنه ، تمامی مشکلات از طرف من بود و از شما مستقیما عذر خواهی می کنم.
شما راست میگی ، همه ی حرف های شما درسته ، من رو ببخشید اخه من هیچی نمی دونم.
تو واسه چی به خودت میگیری ، اصلا کسی با تو صحبت نکرد تو اومدی پست روی پست من زدی منم جواب دادم.
اینجا بحث من فقط با رولینجاکس بود و یه بحث ساده و با این بحث هاست که میشه رفت جلو. نزدیک به 6 ساله طراحی سه بعدی و برنامه نویسی میکنم مثل شما خسته نشدم آدمی که میاد سراغ برنامه نویسی باید بیشتر از اینا حوصله به خرج بده (اینا در باب احسان عزیز بود الان بچه ها نریزن رو سرم) .
fastcode توی یکی از پست هاش گفت من این مسئله رو به چند روش حل میکنم ، پس هر کسی مثل رولی یا من روش خاص خودمون رو داریم اصل اینجاست که جواب بگیریم.
و اگه از پست اول من مطالعه میکردید که من سوال کردم چجور تو تاریخ رو از هم کم کنیم و من با این روش به نتیجه رسیدم به اینجا نمی کشید.
بارها توی تایک ها دوستان اشاره کردن اگه تاریخ میلادی ظرفیتی بیشتر داشت با مشکل بر نمی خوردیم
تن همگی سلامت رفتنی ها که میرن...
موفق باشید./
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
بعد از کلی خوش و بش کردن خوبه که بریم سر اصل مطلب !
اول باید بگم که dateTime2 یکی از انواع متغیرها در SQL server است و ربطی به VS نداره
کلا SQL server برای اینکه خطای ذخیره سازی اطلاعات رو پایین بیاره برای DateTime یک محدوده تعیین کرده و در حالت DateTime2 این محدودیت ها رو برداشته
در مورد DateTime در دات نت و اون هم در CS باید بگم که اگر به نوع متغیرهای ورودی این متد دقت کنید همه ی پارامترهای عددی از نوع Int32 هستند.
یعنی برای ساعت ، سال ، دقیقه ، ثانیه و ... اعداد از نوع Int32 ( و در همون محدوده ) میشه وارد کرد.
پس هیچ محدودیتی در رنج سالهای شمسی (و هر نوع سال دیگری !) در این متغیر وجود ندارد.
کد زیر را امتحان کنید :
DateTime myDateTime = DateTime.Parse("1391/5/10 23:45:00");
TimeSpan myTimeSpan = new TimeSpan(0, 1, 2, 4);
DateTime myDateTime8 = myDateTime - myTimeSpan;
MessageBox.Show("myDateTime - myTimeSpan = " + myDateTime8);
دقت کنید که در مورد حالتی که قرار است از String استفاده کنید همیشه ماه باید در وسط قرار گرفته باشد.
همینطور برای ساعت دقیقه همیشه در وسط درج میشود
همیشه ممکن است در نوشتن عبارت تاریخ به صورت رشته ای خطایی صورت گرفته باشد . در این موارد parse قادر به بازسازی تاریخ نیست.
یکی از دلایلی که از اول برای حذف استفاده از Char و String در تعیین تاریخ ذکر شد هم همین است.
1- همیشه در VS از تاریخ شمسی استفاده کنید
2- هنگام کار با SQL server از متغیر نوع Datetime2 استفاده کنید
3- برای تبدیل تاریخ های میلادی به شمسی و برعکس از PersianCalendar که در زیر فضای نامی Globalization است استفاده کنید.
و در اینجا مشکل کار با تاریخ های شمسی را یکبار و برای همیشه حل کردیم. !
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نه دوست عزیز ، حل نشد .
حالا شما هم این که کد خودته و فقط تارخش عوض شده رو امتحان کن و نتیجه رو بگو.
ولی خواهشن امتحان کن :
DateTime myDateTime = DateTime.Parse("1391/2/30 23:45:00");
TimeSpan myTimeSpan = new TimeSpan(0, 1, 2, 4);
DateTime myDateTime8 = myDateTime - myTimeSpan;
MessageBox.Show("myDateTime - myTimeSpan = " + myDateTime8);
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
فوریه 1391 فقط 28 روز داره.خطا میده.
من همین کد رو با سیستم خودم مینویسم.
int MyDate = DF.DateToInt("1391/02/30") ?? 0;
int OtherDate = DF.DateToInt("1360/12/29") ?? 0;
TimeSpan Difference = new TimeSpan(MyDate - OtherDate, 0, 0, 0);
MessageBox.Show("The Difference is " + Difference.ToString());
int MyDate = DF.DateToInt("1391/02/30") ?? 0;
TimeSpan Difference = new TimeSpan(43, 0, 0, 0);
string OtherDate = DF.IntToDate(MyDate + TimeSpan.Days);
MessageBox.Show("The OtherDate is " + OtherDate.ToString());
خیلی سخت نیست.
تاریخ های Invalid رو با null نشون میده.
Licenseش BSD ه که همه بتونن استفاده کنن.
فوق العاده سریعه.
زمان نداره.
تاریخ رو به شکل نامحدود حساب میکنه و به ازای ساپورت هر سال فقط 4 بایت حافظه مصرف میکنه و تاثیری در سرعتش نداره.(پیشفرض از 1300 تا 1500)
فقط با int طرف هستید.
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
خدا خیرت بده FastCode جان!
من که هرچی میگم این کاری که شما می کنید شمسی نیست و اینطوری نمیشه ، دوباره پست می زنن که این چهار خط تاریخ رو شمسی می کنه!
راستی صمد جان ! تو اردیبهشت منتظر خبرای خوش از اونایی که براش برنامه نوشتی باش!...
کسی هم به دل نگیره ، هر چی بود همه ببخشن دیگه! :تشویق:
FastCode جان! تو 19 سالته و 73 کیلویی؟؟؟!!!
خوش تیپی ها!
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نقل قول:
دوباره پست می زنن که این چهار خط تاریخ رو شمسی می کنه!
مشکل من دقیقاً همینه؟
شما چه چیزی از تاریخ شمسی میخوای که پیاده سازی نشده؟
این رو هم گوگل کن خوبه.
226899
این عدد توی اون کد نیست
و ۱۸۳ سانت
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
سلام دوست عزیز
من هم تو برنامم از تازیخ شمسی استفاده کردم.میخوام ی گزارش تهیه کنم که براساس یک بازه زمانی جستجو میکنه.اما چون در دیتابیس نوع تاریخ را nchar انتخاب کردم نمیشه در رشته ها از علامت > یا < استفاده کرد.
اگه میشه کمکم کنید.
ممنون
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نقل قول:
نوشته شده توسط
SuTeDell
سلام دوست عزیز
من هم تو برنامم از تازیخ شمسی استفاده کردم.میخوام ی گزارش تهیه کنم که براساس یک بازه زمانی جستجو میکنه.اما چون در دیتابیس نوع تاریخ را nchar انتخاب کردم نمیشه در رشته ها از علامت > یا < استفاده کرد.
اگه میشه کمکم کنید.
ممنون
این تاپیک رو کامل خوندید و به جواب نرسیدید؟
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
من از ی کامپوننت به نام PersianTimePicker استفاده میکنم.در SQL هم تاریخ رو DateTime2 گذاشتم.
واسه ذخیره سازی مشکل دارم.
در ذخیره،تاریخ بصورت میلادی در دیتاگرید نمایش داده میشه.واسه درست کردنش باید چکار کنم؟!!
یباره دیگه در SQL تاریخ char(10) گذاشتم این بار دو مشکل شد.
یکی اینکه ترتیب تاریخ درست نیست.یعنی ماه/روز/سال شده و این اشتباس.
مشکل دوم اینکه تو گزارش گیری نمیشه از علامتهای > یا < استفاده کرد.چون char(10) انتخاب کردم.
حالا پیشنهاد شما چیه و باید چجوری درستش کنم؟!!!!
ممنون:لبخندساده:
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نقل قول:
نوشته شده توسط
nafisehk
نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
سلام
ممنون میشم راهنماییم کنید.
سلام
به صورت زیر میتونی اینکارو انجام بدی:
private void dgvBuyFresh_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgvBuyFresh.Columns[e.ColumnIndex].Name == "dateDataGridViewTextBoxColumn")
{
if (e.Value != null)
{
DateTime dt1 = DateTime.Parse(e.Value.ToString());
e.Value = FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate(dt1).ToString();
e.FormattingApplied = true;
}
}
}
dateDataGridViewTextBoxColumn اسم ستون تاریخ تو dataGridView توی فرمت هستش
یا علی
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نقل قول:
نوشته شده توسط
morteza66m
سلام
به صورت زیر میتونی اینکارو انجام بدی:
private void dgvBuyFresh_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dgvBuyFresh.Columns[e.ColumnIndex].Name == "dateDataGridViewTextBoxColumn")
{
if (e.Value != null)
{
DateTime dt1 = DateTime.Parse(e.Value.ToString());
e.Value = FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate(dt1).ToString();
e.FormattingApplied = true;
}
}
}
dateDataGridViewTextBoxColumn اسم ستون تاریخ تو dataGridView توی فرمت هستش
یا علی
با سلام خدمت شما بزرگواران
دستور FarsiLibrary.Utils.PersianDateConverter داخل کدوم کتابخانه ست؟
پیدا نمیکنم کتابخانه رو.
ممنون میشم راهنماییم کنید.
باتشکر از تمامی دوستان و بزرگواران
-
نقل قول: نمایش تاریخ میلادی ذخیره شده در فیلد datetime به شکل شمسی در datagridview
نقل قول:
نوشته شده توسط
faravaghi
سلام،
شما میتونید یه حلقه بزارین و در اون تمام فیلد های تاریخ رو به شمسی تبدیل کنید:
using FarsiLibrary.Utils;
using System.Globalization;
if (Dgv.Rows.Count > 0)
for (int i = 0; i < Dgv.Rows.Count; i++)
{
Dgv.Rows[i].Cells["farsiDate"].Value = ((PersianDate)Convert.ToDateTime(Dgv.Rows[i].Cells["GregorianDate"].Value)).ToString("g");
}
farsiDate : سلولیه که تاریخ شمسی توی اون نمایش داده میشه.
GregorianDate : تاریخ میلادی که به صورت مخفی است.
با سلام خدمت بزرگواران
قسمت farsiDate رو متوجه شدم ولی قسمت GregorianDate رو متوجه نمیشم، از کجا باید خونده بشه؟
اسم ستون من که تاریخ رو درونش تاریخ به میلادی ذخیره میشه InsertDate هست که بجای farsiDate اسم ستون تاریخ جدول که InsertDate جایگزین میشه.
سوالم اینه بجای GregorianDate اسم کدوم ستون رو باید بیارم؟ و اینکه در خط 6 در ToString منظور از g چیه؟ از کجا اومده؟
ممنون میشم راهنماییم کنید.
باتشکر از تمامی دوستان و بزرگواران