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

نام تاپیک: نمایش تاریخ شمسی در asp.net

  1. #1

    نمایش تاریخ شمسی در asp.net


    نمایش تاریخ شمسی همیشه یکی از امکاناتی است که ما مردمان پارسی باید در پروژه استفاده کنیم ، البته در نظر بگیریم که ما فقط باید در هنگام نمایش تاریخ را به صورت شمسی نمایش دهیم ، اطلاعات ما در دیتابیس باید به صورت میلادی ذخیره شده باشد به دلایلی که در ادامه باهم برسی میکنیم.اول اینکه ما از کلاس PersianCulture استفاده میکنیم ، این کلاس در زبان سی شارپ استفاده میشه یعنی شما میتوانید در ASP.NET و ASP.NET MVC و یا در پروژه های ویندوز فرم از این کلاس استفاده کنید.
    تاریخ شمسیچه دلایلی اینجا حکم فرماست که ما باید از تاریخ شمسی در دیتابیس استفاده نکنیم ؟
    دلیل محکمی که میتونم براتون توضیح بدم ساعت و تاریخ ویندوز است ، و یا سرور ما : درسته ؟ این سیستم ها تاریخ را به صورت میلادی ارائه میدهند خوب ماهم باید طبق همین سیستم جلو بریم ولی توسط این کلاس میتوانیم تاریخ را در هنگام نمایش به صورت شمسی داشته باشیم.
    دوم اینکه فرض کنید میخواهید در یک بازه زمانی جستجو انجام دهید ؟ مثلا اطلاعات خرید امروز ؟ میشه از تاریخ جاری سیستم از ساعت ۰۰:۰۰ تا ۲۳:۵۹ دقیقه ، خوب تاریخ سیستم میلادی است اگر اطلاعات ما به صورت شمسی در دیتابیس ثبت شده بود این کار امکان پذیر نبود و خیلی دلایل دیگه که میشه در موردش بحث کرد.میریم سراغ آموزش:
    ابتدا باید کلاسی که ضمیمه شده را به پروژه خود اضافه کنید.کدش رو نیز براتون قرار دادم :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Reflection;

    namespace GSD.Globalization
    {
    ///
    <summary>
    /// <Publisher>http://www.csharpoop.com</Publisher>
    /// <Author></Author>
    /// </summary>

    public class PersianCulture : CultureInfo
    {
    private readonly Calendar cal;
    private readonly Calendar[] optionals;

    ///
    <summary>
    /// كد رو بخوان تا بفهمي
    /// </summary>

    /// <param name="cultureName">fa-IR</param>
    /// <param name="useUserOverride">true</param>

    public PersianCulture()
    : this("fa-IR", true)
    {
    }

    public PersianCulture(string cultureName, bool useUserOverride)
    : base(cultureName, useUserOverride)
    {
    //Temporary Value for cal.
    cal = base.OptionalCalendars[0];

    //populating new list of optional calendars.
    var optionalCalendars = new List<Calendar>();
    optionalCalendars.AddRange(base.OptionalCalendars) ;
    optionalCalendars.Insert(0, new PersianCalendar());


    Type formatType = typeof(DateTimeFormatInfo);
    Type calendarType = typeof(Calendar);


    PropertyInfo idProperty =
    calendarType.GetProperty("ID", BindingFlags.Instance | BindingFlags.NonPublic);
    FieldInfo optionalCalendarfield =
    formatType.GetField("optionalCalendars",
    BindingFlags.Instance | BindingFlags.NonPublic);

    //populating new list of optional calendar ids
    var newOptionalCalendarIDs = new Int32[optionalCalendars.Count];
    for (int i = 0; i < newOptionalCalendarIDs.Length; i++)
    newOptionalCalendarIDs[i] = (Int32)idProperty.GetValue(optionalCalendars[i], null);

    optionalCalendarfield.SetValue(DateTimeFormat, newOptionalCalendarIDs);

    optionals = optionalCalendars.ToArray();
    cal = optionals[0];
    DateTimeFormat.Calendar = optionals[0];

    DateTimeFormat.MonthNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    DateTimeFormat.MonthGenitiveNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    DateTimeFormat.AbbreviatedMonthNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    DateTimeFormat.AbbreviatedMonthGenitiveNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };


    DateTimeFormat.AbbreviatedDayNames =
    new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    DateTimeFormat.ShortestDayNames =
    new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    DateTimeFormat.DayNames =
    new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };

    DateTimeFormat.AMDesignator = "ق.ظ";
    DateTimeFormat.PMDesignator = "ب.ظ";

    /*
    DateTimeFormat.ShortDatePattern = "yyyy/MM/dd";
    DateTimeFormat.LongDatePattern = "yyyy/MM/dd";

    DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy/MM/dd"}, 'd');
    DateTimeFormat.SetAllDateTimePatterns(new[] {"dddd, dd MMMM yyyy"}, 'D');
    DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy MMMM"}, 'y');
    DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy MMMM"}, 'Y');
    */

    }

    public override Calendar Calendar
    {
    get { return cal; }
    }

    public override Calendar[] OptionalCalendars
    {
    get { return optionals; }
    }
    }
    }


    قرار دادن کد های زیر با توجه به تکنولوژی که استفاده میکنید :ASP.NET:
    در ASP.NET کد زیر را در Global.cs قرار بدید :
    ابتدا باید کلاس را به پروژه خود اضافه کنید در غیر این صورت کد زیر کار نخواهد کرد.
    1
    2
    3
    4
    5
    6
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
    var persianCulture = new PersianCulture();
    Thread.CurrentThread.CurrentCulture = persianCulture;
    Thread.CurrentThread.CurrentUICulture = persianCulture;
    }


    در ویندوز فرم زبان سی شارپ :کد زیر را در Program.cs قرار بدید :
    1
    2
    3
    var persianCulture = new PersianCulture();
    Thread.CurrentThread.CurrentCulture = persianCulture;
    Thread.CurrentThread.CurrentUICulture = persianCulture;


    اگر همه کارهایی که آموزش داده شد را درست انجام داده باشید باید تاریخ را شمسی در پروژه مشاهده کنید.حال میخواهیم طبق آموزشی که در خوده کلاس نیز داده شده تاریخ ها را به صورت بهینه نمایش دهیم.نمایش فقط تاریخ :
    1
    DateTime.Now.ToString("yyyy/MM/dd");


    نمایش فقط ساعت :
    1
    DateTime.Now.ToString("HH:mm");





    منبع : 118فایل


  2. #2

    نقل قول: نمایش تاریخ شمسی در asp.net

    نقل قول نوشته شده توسط moeintn مشاهده تاپیک

    نمایش تاریخ شمسی همیشه یکی از امکاناتی است که ما مردمان پارسی باید در پروژه استفاده کنیم ، البته در نظر بگیریم که ما فقط باید در هنگام نمایش تاریخ را به صورت شمسی نمایش دهیم ، اطلاعات ما در دیتابیس باید به صورت میلادی ذخیره شده باشد به دلایلی که در ادامه باهم برسی میکنیم.اول اینکه ما از کلاس PersianCulture استفاده میکنیم ، این کلاس در زبان سی شارپ استفاده میشه یعنی شما میتوانید در ASP.NET و ASP.NET MVC و یا در پروژه های ویندوز فرم از این کلاس استفاده کنید.
    تاریخ شمسیچه دلایلی اینجا حکم فرماست که ما باید از تاریخ شمسی در دیتابیس استفاده نکنیم ؟
    دلیل محکمی که میتونم براتون توضیح بدم ساعت و تاریخ ویندوز است ، و یا سرور ما : درسته ؟ این سیستم ها تاریخ را به صورت میلادی ارائه میدهند خوب ماهم باید طبق همین سیستم جلو بریم ولی توسط این کلاس میتوانیم تاریخ را در هنگام نمایش به صورت شمسی داشته باشیم.
    دوم اینکه فرض کنید میخواهید در یک بازه زمانی جستجو انجام دهید ؟ مثلا اطلاعات خرید امروز ؟ میشه از تاریخ جاری سیستم از ساعت ۰۰:۰۰ تا ۲۳:۵۹ دقیقه ، خوب تاریخ سیستم میلادی است اگر اطلاعات ما به صورت شمسی در دیتابیس ثبت شده بود این کار امکان پذیر نبود و خیلی دلایل دیگه که میشه در موردش بحث کرد.میریم سراغ آموزش:
    ابتدا باید کلاسی که ضمیمه شده را به پروژه خود اضافه کنید.کدش رو نیز براتون قرار دادم :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Reflection;

    namespace GSD.Globalization
    {
    ///
    <summary>
    /// <Publisher>http://www.csharpoop.com</Publisher>
    /// <Author></Author>
    /// </summary>

    public class PersianCulture : CultureInfo
    {
    private readonly Calendar cal;
    private readonly Calendar[] optionals;

    ///
    <summary>
    /// كد رو بخوان تا بفهمي
    /// </summary>

    /// <param name="cultureName">fa-IR</param>
    /// <param name="useUserOverride">true</param>

    public PersianCulture()
    : this("fa-IR", true)
    {
    }

    public PersianCulture(string cultureName, bool useUserOverride)
    : base(cultureName, useUserOverride)
    {
    //Temporary Value for cal.
    cal = base.OptionalCalendars[0];

    //populating new list of optional calendars.
    var optionalCalendars = new List<Calendar>();
    optionalCalendars.AddRange(base.OptionalCalendars) ;
    optionalCalendars.Insert(0, new PersianCalendar());


    Type formatType = typeof(DateTimeFormatInfo);
    Type calendarType = typeof(Calendar);


    PropertyInfo idProperty =
    calendarType.GetProperty("ID", BindingFlags.Instance | BindingFlags.NonPublic);
    FieldInfo optionalCalendarfield =
    formatType.GetField("optionalCalendars",
    BindingFlags.Instance | BindingFlags.NonPublic);

    //populating new list of optional calendar ids
    var newOptionalCalendarIDs = new Int32[optionalCalendars.Count];
    for (int i = 0; i < newOptionalCalendarIDs.Length; i++)
    newOptionalCalendarIDs[i] = (Int32)idProperty.GetValue(optionalCalendars[i], null);

    optionalCalendarfield.SetValue(DateTimeFormat, newOptionalCalendarIDs);

    optionals = optionalCalendars.ToArray();
    cal = optionals[0];
    DateTimeFormat.Calendar = optionals[0];

    DateTimeFormat.MonthNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    DateTimeFormat.MonthGenitiveNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    DateTimeFormat.AbbreviatedMonthNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
    DateTimeFormat.AbbreviatedMonthGenitiveNames =
    new[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };


    DateTimeFormat.AbbreviatedDayNames =
    new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    DateTimeFormat.ShortestDayNames =
    new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
    DateTimeFormat.DayNames =
    new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };

    DateTimeFormat.AMDesignator = "ق.ظ";
    DateTimeFormat.PMDesignator = "ب.ظ";

    /*
    DateTimeFormat.ShortDatePattern = "yyyy/MM/dd";
    DateTimeFormat.LongDatePattern = "yyyy/MM/dd";

    DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy/MM/dd"}, 'd');
    DateTimeFormat.SetAllDateTimePatterns(new[] {"dddd, dd MMMM yyyy"}, 'D');
    DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy MMMM"}, 'y');
    DateTimeFormat.SetAllDateTimePatterns(new[] {"yyyy MMMM"}, 'Y');
    */

    }

    public override Calendar Calendar
    {
    get { return cal; }
    }

    public override Calendar[] OptionalCalendars
    {
    get { return optionals; }
    }
    }
    }


    قرار دادن کد های زیر با توجه به تکنولوژی که استفاده میکنید :ASP.NET:
    در ASP.NET کد زیر را در Global.cs قرار بدید :
    ابتدا باید کلاس را به پروژه خود اضافه کنید در غیر این صورت کد زیر کار نخواهد کرد.
    1
    2
    3
    4
    5
    6
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
    var persianCulture = new PersianCulture();
    Thread.CurrentThread.CurrentCulture = persianCulture;
    Thread.CurrentThread.CurrentUICulture = persianCulture;
    }


    در ویندوز فرم زبان سی شارپ :کد زیر را در Program.cs قرار بدید :
    1
    2
    3
    var persianCulture = new PersianCulture();
    Thread.CurrentThread.CurrentCulture = persianCulture;
    Thread.CurrentThread.CurrentUICulture = persianCulture;


    اگر همه کارهایی که آموزش داده شد را درست انجام داده باشید باید تاریخ را شمسی در پروژه مشاهده کنید.حال میخواهیم طبق آموزشی که در خوده کلاس نیز داده شده تاریخ ها را به صورت بهینه نمایش دهیم.نمایش فقط تاریخ :
    1
    DateTime.Now.ToString("yyyy/MM/dd");


    نمایش فقط ساعت :
    1
    DateTime.Now.ToString("HH:mm");





    منبع : 118فایل

    سلام وقت بخیر دوست عزیزم ، من تاریخ در asp.net داخل گرید ویو فارسی کردم وقتی که روی کلید سرت کلیک میکنم (مرتب سازی ) دوباره تاریخ به حالت اولیه برمیگرده لطفا کمکم کنید .

    http://daymond-medrep.ir/dr%20report.aspx

تاپیک های مشابه

  1. سوال: کنترل DateTimePicker برای تاریخ شمسی در ASP.NET MVC
    نوشته شده توسط jalalx در بخش ASP.NET MVC
    پاسخ: 6
    آخرین پست: چهارشنبه 01 اسفند 1397, 13:17 عصر
  2. ShamsiDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET
    نوشته شده توسط alireza_s_84 در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 6
    آخرین پست: جمعه 28 اسفند 1394, 05:38 صبح
  3. BehooPersianDateValidator - کامپوننتی برای بررسی صحت تاریخ شمسی در ASP.NET
    نوشته شده توسط Behrouz_Rad در بخش مقالات مرتبط با Microsoft .Net Framework
    پاسخ: 23
    آخرین پست: چهارشنبه 04 آبان 1390, 19:58 عصر
  4. سوال: چگونه از تاريخ شمسي در asp.net استفاده كنيم؟
    نوشته شده توسط mamalzamani در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: چهارشنبه 08 دی 1389, 09:20 صبح
  5. نمایش و تشخیص تاریخ شمسی در ASP.NET
    نوشته شده توسط Mahdi_206 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: جمعه 07 خرداد 1389, 21:42 عصر

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

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