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

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

  1. #1
    کاربر دائمی آواتار komeil64
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    سن
    38
    پست
    618

    استفاده از کلاس تبدیل تاریخ

    سلام
    این کلاس رو آقای کرامتی به من معرفی کردن:

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace PersianUtils
    {
    public class CalendarUtils
    {
    public static void SetCalendar()
    {
    System.Globalization.CultureInfo calture = new System.Globalization.CultureInfo("fa-IR");
    System.Globalization.DateTimeFormatInfo info = calture.DateTimeFormat;

    info.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    info.ShortestDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    info.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
    info.AbbreviatedMonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    info.MonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    info.AMDesignator = "ق.ظ";
    info.PMDesignator = "ب.ظ";
    info.ShortDatePattern = "yyyy/MM/dd";
    info.LongDatePattern = "yyyy/MM/dd";
    info.FirstDayOfWeek = DayOfWeek.Saturday;
    System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();
    typeof(System.Globalization.DateTimeFormatInfo).Ge tField("calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue (info, cal);
    object obj = typeof(System.Globalization.DateTimeFormatInfo).Ge tField("m_cultureTableRecord", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue (info);
    obj.GetType().GetMethod("UseCurrentCalendar", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).Invoke(ob j, new object[] { cal.GetType().GetProperty("ID", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue (cal, null) });
    typeof(System.Globalization.CultureInfo).GetField( "calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue (calture, cal);
    System.Threading.Thread.CurrentThread.CurrentCultu re = calture;
    System.Threading.Thread.CurrentThread.CurrentUICul ture = calture;
    System.Globalization.CultureInfo.CurrentCulture.Da teTimeFormat = info;
    System.Globalization.CultureInfo.CurrentUICulture. DateTimeFormat = info;
    }
    }
    }



    ایشون یه کار می کردن که بصورت اتومات همه تاریخ ها بوسیله این کلاس تبدیل می شد
    ممنون میشم راهنمایی کنید چطور این کار رو انجام بدم
    تشکر

  2. #2
    کاربر دائمی آواتار komeil64
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    سن
    38
    پست
    618

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

    کاری که ایشون می کردن این بود که تاریخ توی دیتا بیس میلادی ثبت می شود اما توسط این کلاس توی پروژه شمسی نشون داده میشه
    کسی می تونه راهنمایی کنه چطوری این کلاس رو بکار بگیرم ؟!

  3. #3

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

    این کدی که نوشتم را ببینید در اینجا رشته را به DateTime تبدیل کردیم.
    با استفاده از System.Globalization.PersianCalendar تاریخ میلادی را به تاریخ شمسی تبدیل میکنیم.

            string date = "2010/05/14";
    DateTime dt = DateTime.Parse(date);
    System.Globalization.PersianCalendar p = new System.Globalization.PersianCalendar();
    string year = p.GetYear(dt).ToString();
    string month = p.GetMonth(dt).ToString();
    string day = p.GetDayOfMonth(dt).ToString();
    Response.Write(year + "/" + month + "/" + day);


    موفق باشید.

  4. #4
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

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

    نقل قول نوشته شده توسط komeil64 مشاهده تاپیک
    سلام
    این کلاس رو آقای کرامتی به من معرفی کردن:

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace PersianUtils
    {
    public class CalendarUtils
    {
    public static void SetCalendar()
    {
    System.Globalization.CultureInfo calture = new System.Globalization.CultureInfo("fa-IR");
    System.Globalization.DateTimeFormatInfo info = calture.DateTimeFormat;

    info.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    info.ShortestDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    info.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
    info.AbbreviatedMonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    info.MonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    info.AMDesignator = "ق.ظ";
    info.PMDesignator = "ب.ظ";
    info.ShortDatePattern = "yyyy/MM/dd";
    info.LongDatePattern = "yyyy/MM/dd";
    info.FirstDayOfWeek = DayOfWeek.Saturday;
    System.Globalization.PersianCalendar cal = new System.Globalization.PersianCalendar();
    typeof(System.Globalization.DateTimeFormatInfo).Ge tField("calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue (info, cal);
    object obj = typeof(System.Globalization.DateTimeFormatInfo).Ge tField("m_cultureTableRecord", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue (info);
    obj.GetType().GetMethod("UseCurrentCalendar", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).Invoke(ob j, new object[] { cal.GetType().GetProperty("ID", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue (cal, null) });
    typeof(System.Globalization.CultureInfo).GetField( "calendar", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue (calture, cal);
    System.Threading.Thread.CurrentThread.CurrentCultu re = calture;
    System.Threading.Thread.CurrentThread.CurrentUICul ture = calture;
    System.Globalization.CultureInfo.CurrentCulture.Da teTimeFormat = info;
    System.Globalization.CultureInfo.CurrentUICulture. DateTimeFormat = info;
    }
    }
    }



    ایشون یه کار می کردن که بصورت اتومات همه تاریخ ها بوسیله این کلاس تبدیل می شد
    ممنون میشم راهنمایی کنید چطور این کار رو انجام بدم
    تشکر
    گویا برای دات نت 4 ارور میده.کسی میدونه چطور باید اروره Instance اونو رفع کرد؟


    object obj = typeof(System.Globalization.DateTimeFormatInfo).Ge tField("m_cultureTableRecord", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue (info);

  5. #5
    کاربر دائمی
    تاریخ عضویت
    خرداد 1383
    محل زندگی
    تهران
    پست
    289

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

    کسی راهی پیدا نکرده منم این مشکل رو دارم!

  6. #6
    کاربر دائمی آواتار karim orooji
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد (پایتخته معنوی ایران)
    پست
    1,376

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

    سلام اینو استفاده کن
    کد HTML:
    Public Class ravadid
    Public Shared Function setdaytext(ByVal day As String) As String
    Select Case day
    Case "Saturday"
    Return "شنبه"
    Case "Sunday"
    Return "یک شنبه"
    Case "Monday"
    Return "دوشنبه"
    Case "Tuesday"
    Return "سه شنبه"
    Case "Wednesday"
    Return "چهار شنبه"
    Case "Thursday"
    Return "پنج شنبه"
    Case "Friday"
    Return "جمعه"
    End Select
    Return ""
    End Function
    Public Shared Function setmonthtext(ByVal month As String) As String
    Select Case month
    Case "1"
    Return "فروردین"
    Case "2"
    Return "اردیبهشت"
    Case "3"
    Return "خرداد"
    Case "4"
    Return "تیر"
    Case "5"
    Return "مرداد"
    Case "6"
    Return "شهریور"
    Case "7"
    Return "مهر"
    Case "8"
    Return "آبان"
    Case "9"
    Return "آذر"
    Case "10"
    Return "دی"
    Case "11"
    Return "بهمن"
    Case "12"
    Return "اسفند"
    End Select
    Return ""
    End Function
    End Class

    و برای ریختن در کنترول
    کد HTML:
    Sub data()
    Dim pc As New PersianCalendar()
    Dim sal As String = pc.GetYear(Date.Now).ToString()
    Dim mah As String = pc.GetMonth(Date.Now).ToString()
    Dim day As String = pc.GetDayOfMonth(Date.Now).ToString()
    Dim dayy As String = setdaytext(pc.GetDayOfWeek(Date.Now).ToString())
    Dim month As String = setmonthtext(pc.GetMonth(Date.Now).ToString())
    Label1.Text = " امروز : " + dayy + " " + day & " " & month & " " & sal & " ساعت" & pc.GetHour(Date.Now).ToString() & ":" & pc.GetMinute(Date.Now).ToString()
    End Sub

  7. #7
    کاربر دائمی آواتار alonemm
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهرانپارس
    سن
    35
    پست
    1,846

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

    باسلام:
    اگه شما تاریخ رو به صورت میلادی ذخیره میکنید و برای نمایش مثل در گرید مشکل دارید میتونید در روییداد OnRowDataBound عملیات تبدیل داده رو انجام بدید. ( این سوال رو چند بار پاسخ دادم جستجو کنید )

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

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