ورود

View Full Version : سوال: مشکل در ذخیره تاریخ همراه با ساعت در persia.dll



mohsen_namad
شنبه 17 مهر 1389, 17:38 عصر
با سلام
ببخشید من میخواستم کاربر تاریخ فارسی رو همراه با ساعت از طریق یه تکس باکس وارد کنه و اون تاریخ به صورت همراه باساعت تو بانک ذخیره بشه ولی وقتی تاریخ رو با ساعت وارد میکنم مثلا
1389/1/1 2:2:00 ساعت رو همراه با تاریخ تبدیل نمی کنه چیکار باید بکنم که همراه با هم تبدیل بشه.
من از PERSI.DLL استفاده می کنم.

karim orooji
شنبه 17 مهر 1389, 20:34 عصر
با سلام
من در برنامه هایم برای تبدیل تاریخ از این کامپوننت استفاده میکنم
این کامپوننتی که برای شما گذاشتم ابتدا به برنامه به صورت reference اضافه کرده
سپس این روتین رو در برنامه اضافه کنید


Sub data()
Dim strDate1 As String = "{0}/{1}/{2}"
Dim strtime As String = "{0}:{1}:{2}"
Dim strDate As String = "{1} {2} {3} {0}"
Dim pc As New System.Globalization.PersianCalendar()
strDate1 = [String].Format(strDate1, pc.GetYear(DateTime.Now), pc.GetMonth(DateTime.Now), pc.GetDayOfMonth(DateTime.Now))
strtime = [String].Format(strtime, pc.GetHour(DateTime.Now), pc.GetMinute(DateTime.Now), pc.GetSecond(DateTime.Now))
Dim a As String = pc.GetYear(DateTime.Now).ToString()
Dim b As Integer = pc.GetMonth(DateTime.Now)
Dim c As String = pc.GetDayOfMonth(DateTime.Now).ToString()
Dim d As String = pc.GetDayOfWeek(DateTime.Now).ToString()
Dim f As String = "0"
Dim week1 As String = "0"
Select Case b
Case 1
f = "فروردین"
Exit Select
Case 2
f = "اردیبهشت"
Exit Select
Case 3
f = "خرداد"
Exit Select
Case 4
f = "تیر"
Exit Select
Case 5
f = "مرداد"
Exit Select
Case 6
f = "شهریور"
Exit Select
Case 7
f = "مهر"
Exit Select
Case 8
f = "آبان"
Exit Select
Case 9
f = "آذر"
Exit Select
Case 10
f = "دی"
Exit Select
Case 11
f = "بهمن"
Exit Select
Case 12
f = "اسفند"
Exit Select
End Select
Select Case d
Case "Saturday"
week1 = "شنبه"
Exit Select
Case "Sunday"
week1 = "یکشنبه"
Exit Select
Case "Monday"
week1 = "دوشنبه"
Exit Select
Case "Tuesday"
week1 = "سه شنبه"
Exit Select
Case "Wednesday"
week1 = "چهارشنبه"
Exit Select
Case "Thursday"
week1 = "پنج شنبه"
Exit Select
Case "Friday"
week1 = "جمعه"
Exit Select
End Select
strDate = [String].Format(strDate, a, week1, c, f)
str = strDate + " ساعت " + Date.Now.ToString("HH:mm:ss")
lbl_date.Text = " امروز " + strDate + " ساعت " + Date.Now.ToString("HH:mm:ss")
End Sub
Sub data()
Dim strDate1 As String = "{0}/{1}/{2}"
Dim strtime As String = "{0}:{1}:{2}"
Dim strDate As String = "{1} {2} {3} {0}"
Dim pc As New System.Globalization.PersianCalendar()
strDate1 = [String].Format(strDate1, pc.GetYear(DateTime.Now), pc.GetMonth(DateTime.Now), pc.GetDayOfMonth(DateTime.Now))
strtime = [String].Format(strtime, pc.GetHour(DateTime.Now), pc.GetMinute(DateTime.Now), pc.GetSecond(DateTime.Now))
Dim a As String = pc.GetYear(DateTime.Now).ToString()
Dim b As Integer = pc.GetMonth(DateTime.Now)
Dim c As String = pc.GetDayOfMonth(DateTime.Now).ToString()
Dim d As String = pc.GetDayOfWeek(DateTime.Now).ToString()
Dim f As String = "0"
Dim week1 As String = "0"
Select Case b
Case 1
f = "فروردین"
Exit Select
Case 2
f = "اردیبهشت"
Exit Select
Case 3
f = "خرداد"
Exit Select
Case 4
f = "تیر"
Exit Select
Case 5
f = "مرداد"
Exit Select
Case 6
f = "شهریور"
Exit Select
Case 7
f = "مهر"
Exit Select
Case 8
f = "آبان"
Exit Select
Case 9
f = "آذر"
Exit Select
Case 10
f = "دی"
Exit Select
Case 11
f = "بهمن"
Exit Select
Case 12
f = "اسفند"
Exit Select
End Select
Select Case d
Case "Saturday"
week1 = "شنبه"
Exit Select
Case "Sunday"
week1 = "یکشنبه"
Exit Select
Case "Monday"
week1 = "دوشنبه"
Exit Select
Case "Tuesday"
week1 = "سه شنبه"
Exit Select
Case "Wednesday"
week1 = "چهارشنبه"
Exit Select
Case "Thursday"
week1 = "پنج شنبه"
Exit Select
Case "Friday"
week1 = "جمعه"
Exit Select
End Select
strDate = [String].Format(strDate, a, week1, c, f)
str = strDate + " ساعت " + Date.Now.ToString("HH:mm:ss")
lbl_date.Text = " امروز " + strDate + " ساعت " + Date.Now.ToString("HH:mm:ss")
End Sub
Sub data()
Dim strDate1 As String = "{0}/{1}/{2}"
Dim strtime As String = "{0}:{1}:{2}"
Dim strDate As String = "{1} {2} {3} {0}"
Dim pc As New System.Globalization.PersianCalendar()
strDate1 = [String].Format(strDate1, pc.GetYear(DateTime.Now), pc.GetMonth(DateTime.Now), pc.GetDayOfMonth(DateTime.Now))
strtime = [String].Format(strtime, pc.GetHour(DateTime.Now), pc.GetMinute(DateTime.Now), pc.GetSecond(DateTime.Now))
Dim a As String = pc.GetYear(DateTime.Now).ToString()
Dim b As Integer = pc.GetMonth(DateTime.Now)
Dim c As String = pc.GetDayOfMonth(DateTime.Now).ToString()
Dim d As String = pc.GetDayOfWeek(DateTime.Now).ToString()
Dim f As String = "0"
Dim week1 As String = "0"
Select Case b
Case 1
f = "فروردین"
Exit Select
Case 2
f = "اردیبهشت"
Exit Select
Case 3
f = "خرداد"
Exit Select
Case 4
f = "تیر"
Exit Select
Case 5
f = "مرداد"
Exit Select
Case 6
f = "شهریور"
Exit Select
Case 7
f = "مهر"
Exit Select
Case 8
f = "آبان"
Exit Select
Case 9
f = "آذر"
Exit Select
Case 10
f = "دی"
Exit Select
Case 11
f = "بهمن"
Exit Select
Case 12
f = "اسفند"
Exit Select
End Select
Select Case d
Case "Saturday"
week1 = "شنبه"
Exit Select
Case "Sunday"
week1 = "یکشنبه"
Exit Select
Case "Monday"
week1 = "دوشنبه"
Exit Select
Case "Tuesday"
week1 = "سه شنبه"
Exit Select
Case "Wednesday"
week1 = "چهارشنبه"
Exit Select
Case "Thursday"
week1 = "پنج شنبه"
Exit Select
Case "Friday"
week1 = "جمعه"
Exit Select
End Select
strDate = [String].Format(strDate, a, week1, c, f)
str = strDate + " ساعت " + Date.Now.ToString("HH:mm:ss")
lbl_date.Text = " امروز " + strDate + " ساعت " + Date.Now.ToString("HH:mm:ss")
End Sub


برای فراخوانی باید ابتدا در لود فرم قرار گیرد بعد استفاده شود
میشه کد رو از روتین در آورده مستقیماً در لود برنامه استفاده کرد
دیگه همه چیزش واضحه
من متغیری به نام strDate گرفتم وبقیه ماجرا
اینم خروجیش
امروز شنبه 17 مهر 1389 ساعت 08:58:13

mohsen_namad
یک شنبه 18 مهر 1389, 00:31 صبح
ببخشید من این dll رو که اضافه کردم چطوری باید ازش استفاده کنم .(باید تمام این کد ها رو تو سایتم قرار بدم :متعجب::متعجب:).
راستی برای اون سوالی که گفتم ، خوده persia.dll این قابلیت رو نداره؟؟

karim orooji
یک شنبه 18 مهر 1389, 10:05 صبح
با سلام به دوست گرامی
اون کدی که گفتم رو در برنامه کپی کن سپس نام روتین رو در لود برنامه قرار بده
یک label به نام lbl_date بساز برنامه رو اجرا کن

به همین سادگی به همین خوشمزگی پودر کیک رشد!

mahmood_4246
یک شنبه 18 مهر 1389, 15:56 عصر
با سلام
ببخشید من میخواستم کاربر تاریخ فارسی رو همراه با ساعت از طریق یه تکس باکس وارد کنه و اون تاریخ به صورت همراه باساعت تو بانک ذخیره بشه ولی وقتی تاریخ رو با ساعت وارد میکنم مثلا
1389/1/1 2:2:00 ساعت رو همراه با تاریخ تبدیل نمی کنه چیکار باید بکنم که همراه با هم تبدیل بشه.
من از PERSI.DLL استفاده می کنم.
من یه نمونه گذاشنم..فقط شما اول ساعتو از تاریخت جدا کن و جای DateTime.Now.ToShortTimeString() بذار..

TextBox1.Text = Convert.ToDateTime(Persia.Calendar.ConvertToGregor ian(int.Parse(TextBox1.Text.Substring(0, 4)), int.Parse(TextBox1.Text.Substring(5, 2)), int.Parse(TextBox1.Text.Substring(8, 2)), Persia.DateType.Gerigorian)).ToShortDateString()+' '+DateTime.Now.ToShortTimeString();
DateTime dateExample = Convert.ToDateTime(TextBox1.Text);

mohsen_namad
دوشنبه 19 مهر 1389, 17:18 عصر
با سلام
من از این کد استفاده کردم ولی وقتی می خوام اطلاعات رو تو بانک ذخیره کنه پیغام خطا میده (فیلد بانک اطلاعاتیم از نوع date time هستش). چطوری میتونم این مشکل رو بر طرف کنم؟



DateTime start =DateTime.Parse(ttime_start.Text);
DateTime end =DateTime.Parse(ttime_end.Text);


string date = Persia.Calendar.ConvertToPersian(start).Simple + " " + DateTime.Now.ToShortTimeString();


سایت رو تو ضمیمه گذاشتم.

mahmood_4246
سه شنبه 20 مهر 1389, 01:54 صبح
تبدیلش کن به datetime
Convert.ToDateTime
===