PDA

View Full Version : درج تاریخ شمسی ولی نمایش به صورت میلادی



imanasp
پنج شنبه 28 آبان 1388, 12:31 عصر
با سلام من برای گرفتن تاریخ شمسی از کاربر از کنترل PersianDatePickup استفاده کردم و برای نمایش اون از کنترل radGrid مجموعه telerik ولی زمان نمایش تاریخ به صورت میلادی نشون میده همراه با ساعت.
مشکل کار کجاست؟

اینم عکسش:

Alghoochi
پنج شنبه 28 آبان 1388, 13:26 عصر
می تونی از کلاس های system.globalization برای تبدیل تاریخ میلادی به شمسی استفاده کنی

imanasp
پنج شنبه 28 آبان 1388, 14:23 عصر
میشه یه مثال بزنی؟

Alghoochi
پنج شنبه 28 آبان 1388, 16:47 عصر
dim PDate As New System.Globalization.PersianCalendar
dim PersianYear, PersianMonth, PersianDay As Integer

PersianDay = PDate.GetDayOfMonth(Now)
PersianMonth = PDate.GetMonth(Now)
PersianYear = PDate.GetYear(Now)


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

ASP.NET2
پنج شنبه 18 شهریور 1389, 04:18 صبح
dim PDate As New System.Globalization.PersianCalendar
dim PersianYear, PersianMonth, PersianDay As Integer

PersianDay = PDate.GetDayOfMonth(Now)
PersianMonth = PDate.GetMonth(Now)
PersianYear = PDate.GetYear(Now)
این کد تاریخ میلادی رو به هجری شمسی تبدیل می کنه
سلام
از این روش که اشاره کردین چجوری میشه برای persianDatePikup استفاده کرد.
همونطور که دوست خوبم اشاره کرد .تاریخ رو زمان وارد کردن فارسی نشون می ده ولی وقتی تو دیتابیس ذخیره می شه معادل میلادی هست.؟من با C#‎‎‎‎‎ کار می کنم.
و تکه کد شما رو هم به C#‎‎‎ تبدیل کردم.ولی نتونستم ازش برای PersianDatePickup استفاده کنم.

System.Globalization.PersianCalendar PDate = new System.Globalization.PersianCalendar();
int PersianYear = 0;
int PersianMonth = 0;
int PersianDay = 0;

PersianDay = PDate.GetDayOfMonth(DateTime.Now);
PersianMonth = PDate.GetMonth(DateTime.Now);
PersianYear = PDate.GetYear(DateTime.Now);

ASP.NET2
پنج شنبه 18 شهریور 1389, 14:55 عصر
کسی این مشکل براش پیش نیومده؟

ghbn1362
پنج شنبه 18 شهریور 1389, 17:32 عصر
این کد را در pageload اجرا نماید تا تاریخ به صورت شمسی نمایش داده شود و به صورت میلادی ذخیره شود همه فیلدها را از نوع Date بگیرید

Public Shared Sub ChangeCultureToPersian()
Dim info As New CultureInfo("fa-IR")
Dim dateTimeFormat As DateTimeFormatInfo = info.DateTimeFormat
dateTimeFormat.AbbreviatedDayNames = New String() {ChrW(1609), ChrW(1583), ChrW(1587), ChrW(1670), ChrW(1662), ChrW(1580), ChrW(1588)}
dateTimeFormat.DayNames = New String() {ChrW(1610) & ChrW(1705) & ChrW(1588) & ChrW(1606) & ChrW(1576) & ChrW(1607), ChrW(1583) & ChrW(1608) & ChrW(1588) & ChrW(1606) & ChrW(1576) & ChrW(1607), ChrW(1587) & ChrW(1607) & " " & ChrW(1588) & ChrW(1606) & ChrW(1576) & ChrW(1607), ChrW(1670) & ChrW(1607) & ChrW(1575) & ChrW(1585) & ChrW(1588) & ChrW(1606) & ChrW(1576) & ChrW(1607), ChrW(1662) & ChrW(1606) & ChrW(1580) & ChrW(1588) & ChrW(1606) & ChrW(1576) & ChrW(1607), ChrW(1580) & ChrW(1605) & ChrW(1593) & ChrW(1607), ChrW(1588) & ChrW(1606) & ChrW(1576) & ChrW(1607)}
dateTimeFormat.AbbreviatedMonthNames = New String() {ChrW(1601) & ChrW(1585) & ChrW(1608) & ChrW(1585) & ChrW(1583) & ChrW(1610) & ChrW(1606), ChrW(1575) & ChrW(1585) & ChrW(1583) & ChrW(1610) & ChrW(1576) & ChrW(1607) & ChrW(1588) & ChrW(1578), ChrW(1582) & ChrW(1585) & ChrW(1583) & ChrW(1575) & ChrW(1583), ChrW(1578) & ChrW(1610) & ChrW(1585), ChrW(1605) & ChrW(1585) & ChrW(1583) & ChrW(1575) & ChrW(1583), ChrW(1588) & ChrW(1607) & ChrW(1585) & ChrW(1610) & ChrW(1608) & ChrW(1585), ChrW(1605) & ChrW(1607) & ChrW(1585), ChrW(1570) & ChrW(1576) & ChrW(1575) & ChrW(1606), ChrW(1570) & ChrW(1584) & ChrW(1585), ChrW(1583) & ChrW(1610), ChrW(1576) & ChrW(1607) & ChrW(1605) & ChrW(1606), ChrW(1575) & ChrW(1587) & ChrW(1601) & ChrW(1606) & ChrW(1583), ""}
dateTimeFormat.MonthNames = New String() {ChrW(1601) & ChrW(1585) & ChrW(1608) & ChrW(1585) & ChrW(1583) & ChrW(1610) & ChrW(1606), ChrW(1575) & ChrW(1585) & ChrW(1583) & ChrW(1610) & ChrW(1576) & ChrW(1607) & ChrW(1588) & ChrW(1578), ChrW(1582) & ChrW(1585) & ChrW(1583) & ChrW(1575) & ChrW(1583), ChrW(1578) & ChrW(1610) & ChrW(1585), ChrW(1605) & ChrW(1585) & ChrW(1583) & ChrW(1575) & ChrW(1583), ChrW(1588) & ChrW(1607) & ChrW(1585) & ChrW(1610) & ChrW(1608) & ChrW(1585), ChrW(1605) & ChrW(1607) & ChrW(1585), ChrW(1570) & ChrW(1576) & ChrW(1575) & ChrW(1606), ChrW(1570) & ChrW(1584) & ChrW(1585), ChrW(1583) & ChrW(1610), ChrW(1576) & ChrW(1607) & ChrW(1605) & ChrW(1606), ChrW(1575) & ChrW(1587) & ChrW(1601) & ChrW(1606) & ChrW(1583), ""}
dateTimeFormat.AMDesignator = ChrW(1602) & "." & ChrW(1592)
dateTimeFormat.PMDesignator = ChrW(1576) & "." & ChrW(1592)
dateTimeFormat.ShortDatePattern = "yyyy/MM/dd"
dateTimeFormat.FirstDayOfWeek = DayOfWeek.Saturday
Dim calendar As New PersianCalendar
GetType(DateTimeFormatInfo).GetField("calendar", (BindingFlags.NonPublic Or (BindingFlags.Public Or BindingFlags.Instance))).SetValue(dateTimeFormat, calendar)
Dim objectValue As Object = RuntimeHelpers.GetObjectValue(GetType(DateTimeForm atInfo).GetField("m_cultureTableRecord", (BindingFlags.NonPublic Or (BindingFlags.Public Or BindingFlags.Instance))).GetValue(dateTimeFormat))
objectValue.GetType.GetMethod("UseCurrentCalendar", (BindingFlags.NonPublic Or BindingFlags.Instance)).Invoke(RuntimeHelpers.GetO bjectValue(objectValue), New Object() {RuntimeHelpers.GetObjectValue(calendar.GetType.Ge tProperty("ID", (BindingFlags.NonPublic Or BindingFlags.Instance)).GetValue(calendar, Nothing))})
GetType(CultureInfo).GetField("calendar", (BindingFlags.NonPublic Or (BindingFlags.Public Or BindingFlags.Instance))).SetValue(info, calendar)
Thread.CurrentThread.CurrentCulture = info
Thread.CurrentThread.CurrentUICulture = info
CultureInfo.CurrentCulture.DateTimeFormat = dateTimeFormat
CultureInfo.CurrentUICulture.DateTimeFormat = dateTimeFormat
End Sub

ASP.NET2
جمعه 19 شهریور 1389, 01:15 صبح
ممنون از جوابتون ولی من C# کار می کنم.

ASP.NET2
جمعه 26 شهریور 1389, 03:07 صبح
من هنوز منتظرم ...:افسرده:

amordad
جمعه 26 شهریور 1389, 06:02 صبح
با سلام
دوست من از persianutils استفاده کن
اینم مثالش