PDA

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



saeed31641
دوشنبه 10 مهر 1391, 16:22 عصر
سلام من با Persia.DLL تاریخ شمسی رو به میلادی تبدیل میکنم .حالا میخام زمان تبدیل یه ساعتی رو هم ثابت اضافه کنم .چیکار باید کرد.
مثلا این تاریخ 2012/12/20 به 2012/12/21 4:14:00 تبدیل کنم
view source (http://forum.how2learnasp.net/ShowTopic.aspx?Code=6568#viewSource)print (http://forum.how2learnasp.net/ShowTopic.aspx?Code=6568#printSource)? (http://forum.how2learnasp.net/ShowTopic.aspx?Code=6568#about)

1.Persia.Calendar.ConvertToGregorian(int.Parse(a[0]),int.Parse(a[1]),int.Parse(a[2]));


این تابع فقط سال و ماه و روز میگره ساعتو نمگیره.

saeed_sho
دوشنبه 10 مهر 1391, 17:00 عصر
پست 9 و 11 این تاپیک رو ببینید
http://barnamenevis.org/showthread.php?356311-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D9%87-%D9%85%D8%AF%D8%AA-%D8%A8%DB%8C%D9%86-%D8%AF%D9%88-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE
پست 4 این تاپیک رو ببینید
http://barnamenevis.org/showthread.php?356599-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-shamsi.dll-%D8%AF%D8%B1-%D9%88%D9%8A%DA%98%D9%88%D8%A7%D9%84-%D8%A7%D8%B3%D8%AA%D9%88%D8%AF%D9%8A%D9%88-2010-%D8%A8%D8%A7-%D8%B2%D8%A8%D8%A7%D9%86-C-%D9%88-%D9%BE%D9%84%D8%AA%D9%81%D8%B1%D9%85-asp.net&p=1572746#post1572746
یا این راه قبلش فضای نامی System.Globalization رو using کنید
PersianCalendar pc= New PersianCalendar()
pc.ToDateTime(هم پارامتر تاریخو وارد کنید هم ساعتو)

amirzandi
سه شنبه 11 مهر 1391, 06:59 صبح
از این تابع استفاده کنی خیلی راحت تر هست :

Imports Microsoft.VisualBasic
Imports System.Globalization
Imports System.Reflection
Imports System.Threading

Public Class GeneralClass
Public Sub shamsi_Date()
Dim calture As New CultureInfo("fa-IR")
Dim info As DateTimeFormatInfo = calture.DateTimeFormat
info.AbbreviatedDayNames = New String() {"ى", "د", "س", "چ", "پ", "ج", "ش"}
info.DayNames = New String() {"یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"}
info.AbbreviatedMonthNames = New String() {"فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", ""}
info.MonthNames = New String() {"فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", ""}
info.AMDesignator = "ق.ظ"
info.PMDesignator = "ب.ظ"
info.ShortDatePattern = "yyyy/MM/dd"
info.FirstDayOfWeek = DayOfWeek.Saturday
Dim PersianCal As New PersianCalendar
GetType(DateTimeFormatInfo).GetField("calendar", (BindingFlags.NonPublic Or (BindingFlags.Public Or BindingFlags.Instance))).SetValue(info, PersianCal)
' Dim obj As Object = GetType(DateTimeFormatInfo).GetField("m_cultureTableRecord", (BindingFlags.NonPublic Or (BindingFlags.Public Or BindingFlags.Instance))).GetValue(info)

'obj.GetType.GetMethod("UseCurrentCalendar", (BindingFlags.NonPublic Or BindingFlags.Instance)).Invoke(obj, New Object() {PersianCal.GetType.GetProperty("ID", (BindingFlags.NonPublic Or BindingFlags.Instance)).GetValue(PersianCal, Nothing)})
GetType(CultureInfo).GetField("calendar", (BindingFlags.NonPublic Or (BindingFlags.Public Or BindingFlags.Instance))).SetValue(calture, PersianCal)
Thread.CurrentThread.CurrentCulture = calture
Thread.CurrentThread.CurrentUICulture = calture
CultureInfo.CurrentCulture.DateTimeFormat = info
CultureInfo.CurrentUICulture.DateTimeFormat = info
End Sub
End Class