نمایش نتایج 1 تا 16 از 16

نام تاپیک: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

  1. #1
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    سلام دوستان
    من تو برنامم برای نشان دادن تاریخ و تبدیل تاریخ میلادی به شمسی از کد زیر استفاده میکنم . ابتدا تاریخ رو از بانک بازیابی کرده و بعد اونو تبدیل میکنم.

    Dim pc As New System.Globalization.PersianCalendar()
    Dim dt As New Date()
    dim date as string= pc.GetYear(dt).ToString() & "/" & pc.GetMonth(dt).ToString() & "/" & _
    pc.GetDayOfMonth(dt).ToString()


    اما تاریخ هایی که باید تبدیل به روز 31 ماه بشن مشکل داره و تبدیل نمیشه
    ممکنه کمک کنید...

  2. #2
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    سلام دوستم من
    من با متد زیر هر تاریخ میلادی رو به راحتی به شمسی تبدیل میکنم
        ''' <summary>
    ''' تبدیل تاریخ میلادی به شمسی
    ''' </summary>
    ''' <param name="MDate">فرمت ورودی تاریخ : MM-dd-yyyy</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function MiladiToShamsi(ByVal MDate As Date) As String
    Dim Pcal As New Globalization.PersianCalendar
    Return Pcal.GetYear(MDate) & "/" & Pcal.GetMonth(MDate) & "/" & Pcal.GetDayOfMonth(MDate)
    End Function

    برای مثال
    MiladiToShamsi("5/20/2008")

    که این خروجی رو میده
    1387/2/31

  3. #3
    کاربر دائمی آواتار rooshan2008
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    گیلان- لشت نشا
    سن
    37
    پست
    179

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    سلام


    Dim s AsString = "2008/5/20"
    Dim date1 AsString = pc.GetYear(s).ToString() & "/" & pc.GetMonth(s).ToString() & "/" & _
    pc.GetDayOfMonth(s).ToString()
    MsgBox(date1)

    کدی که نوشته بودی دست بود مثلاً من با 2008/5/20 امتحان کردم درست بود
    حالا یه سری به بانکت بزن شاید اونجا مشکلی باشه...

  4. #4
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    تاریخ مورد نظر تو بانکم به این شکله:

    2008-10-29 08:38:36.937

  5. #5
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    من با همین فرمتی که توی بانکتون ذخیره شده هم تست کردم. مشکلی نبود.
    Dim D As Date = "2008-5-20 08:38:36.937"
    MsgBox(MiladiToShamsi(D))

    خروجی
    1387/2/31

  6. #6
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    نقل قول نوشته شده توسط mostafaaa مشاهده تاپیک
    من با همین فرمتی که توی بانکتون ذخیره شده هم تست کردم. مشکلی نبود.
    Dim D As Date = "2008-5-20 08:38:36.937"
    MsgBox(MiladiToShamsi(D))

    خروجی
    1387/2/31
    ببینید من یه سری اطلاعات رو از بانک میخونم و با همین تابع شما در دیتا گرید نشونم میدم. تاریخ رو باید به شکل شمسی نشون بدم. اما تاریخ هایی که تو روز 31 ماهه با یه پیغام اروری که میده تبدیل نمیکنه. پیغام ارور رو در زیر گذاتشتم تا ببینید. دقیقا همین تاریخی که شما وارد کردید رو گذاشتم.
    عکس های ضمیمه عکس های ضمیمه

  7. #7
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    سلام دوست من
    ایکاش از اول همین Error رو گزاشته بودی. به نظر میرسه مشکل از DataGridView باشه. احتمالا ValueType اون ستونی که توش تاریخ رو نشون میدی DateTime هستش. فکر میکنl با تغییر فرمت اون ستون مشکلت برطرف بشه.

  8. #8
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    من مستقیما اطلاعات رو از بانک میخونم یعنی DataPropertyName هر ستون رو طبق دستور Select از بانک قرار میدم. با این شرایط چطور میتونم ValueType رو تغییر بدم...؟؟؟

  9. #9
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    یعنی یه فیلدی توی بانک دارید با فرمت DateTime که توش تاریخ شمسی رو ذخیره کردید؟
    اگه اینجوریه که معلومه چرا ارور میده تاریخ رو توی بانک یا به صورت میلادی ذخیره کن و یا اگه میخوای به صورت شمسی ذخیره کنی فرمت فیلدت رو Text بزار.

  10. #10
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    نه تاریخ توی بانکم به شکل میلادی ذخیره شده و نوعش هم DateTime هست. و میخوام تو دیتاگرید به صورت شمسی نشون بدم

  11. #11
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    تهران
    پست
    424

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    نقل قول نوشته شده توسط mehrnoosh_al62 مشاهده تاپیک
    من مستقیما اطلاعات رو از بانک میخونم یعنی DataPropertyName هر ستون رو طبق دستور Select از بانک قرار میدم. با این شرایط چطور میتونم ValueType رو تغییر بدم...؟؟؟
    اگر شما اطلاعات رو مستقیما از بانک می خونین، پس چطور تاریخ شمسی در گرید می خواین نشون بدین؟؟
    اما در هر حالٰ شما باید یک ستون در گرید تعریف کنین که valuetype اون از جنس string باشه.
    برای چگونگی هم به MSDN مراجعه کنین

  12. #12
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    این ستون از گرید رو تو یه حلقه for تغییرش میدم و تبدیل به شمسی میکنم. به هر حال ممنون مشکلم حل شد

  13. #13

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    Module Module1
    Friend Function PDate(ByVal Model As Integer) As String
    Dim PDate1 As String = ""
    Dim x As New Globalization.PersianCalendar
    Select Case Model
    Case 1
    PDate1 = x.GetYear(Now) & "/"
    If (Len(Trim((x.GetMonth(Now)))) = 1) Then
    PDate1 = PDate1 & "0" & x.GetMonth(Now) & "/"
    Else
    PDate1 = PDate1 & x.GetMonth(Now) & "/"
    End If
    If (Len(Trim((x.GetDayOfMonth(Now)))) = 1) Then
    PDate1 = PDate1 & "0" & x.GetDayOfMonth(Now)
    Else
    PDate1 = PDate1 & x.GetDayOfMonth(Now)
    End If
    Case 2
    Dim m As String = ""
    Dim d As String = ""
    Select Case x.GetMonth(Now)
    Case 1
    m = "فروردين"
    Case 2
    m = "ارديبهشت"
    Case 3
    m = "خرداد"
    Case 4
    m = "تير"
    Case 5
    m = "مرداد"
    Case 6
    m = "شهريور"
    Case 7
    m = "مهر"
    Case 8
    m = "آبان"
    Case 9
    m = "آذر"
    Case 10
    m = "دي"
    Case 11
    m = "بهمن"
    Case 12
    m = "اسفند"
    End Select
    Select Case x.GetDayOfWeek(Now)
    Case 0
    d = "يكشنبه"
    Case 1
    d = "دوشنبه"
    Case 2
    d = "سه‌شنبه"
    Case 3
    d = "چهارشنبه"
    Case 4
    d = "پنج‌شنبه"
    Case 5
    d = "جمعه"
    Case 6
    d = "شنبه"
    End Select
    PDate1 = d.ToString & " " & x.GetDayOfMonth(Now) & " " & m & " ماه " & x.GetYear(Now)
    Case 3
    PDate1 = x.GetYear(Now)
    If (Len(Trim((x.GetMonth(Now)))) = 1) Then
    PDate1 = PDate1 & "0" & x.GetMonth(Now)
    Else
    PDate1 = PDate1 & x.GetMonth(Now)
    End If
    If (Len(Trim((x.GetDayOfMonth(Now)))) = 1) Then
    PDate1 = PDate1 & "0" & x.GetDayOfMonth(Now)
    Else
    PDate1 = PDate1 & x.GetDayOfMonth(Now)
    End If
    End Select
    Return PDate1.ToString
    End Function
    End Module


    اين كد رو داخل ماژول قرار بده وبه فرم هاي زير فراخواني كن
    messagebox.show(PDate(1))

    يا به جاي مقدار 1 مقدارهاي 2 و 3 را قرار بده و نتيجه رو ببين

  14. #14
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    پست
    82

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    دوست عزیر این تابعی که شما گذاشتین ورودیش تاریخ هست نه رشته پس باید فیلد شما هم از نوع تاریخ باشه! که میگین نیست. میشه نمونه برنامتونو بذارید تا ایرادو پیدا کنیم؟

  15. #15
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    سلام بهترین راه اینه که همیشه یک ستون از نوع DateTime باشه و یک ستون از نوع String که در یکی تاریخ میلادی و در یکی تاریخ شمسی نگهداری بشه. اگه این کار رو بکنید میتونین توی گرید هم ،تاریخ شمسی که فرمت رشته ایی داره رو نشون بدین. در ضمن با این کار دیگه توی کریستال هم مشکلی ندارین و احتیاجی به اضافه کردن DLL به اون رو ندارین

  16. #16
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بچه اشکور شهرستان رودسر
    سن
    47
    پست
    243

    نقل قول: مشکل در تبدیل تاریخ شمسی به میلادی روز 31 ماه

    برای کار باتاریخ بهترین راه اینه :
    1- تاریخ میلادی در بانک ذخیره بشه
    2- یک استور پوروسیجر ویا تابع در خود بانک sql server نوشته بشه که تاریخ میلادی را به شمسی تبدیل کنه
    3-در هنگام select از بانک تاریخ شمسی را برگردانیم اونوقت به راحتی در هر جایی می توان از ان بهره برداری نمود .
    من با این روش کار می کنم هیچ مشکلی ندارم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •