PDA

View Full Version : تاریخ شمسی در vb.net 2005



shervin110uk
پنج شنبه 16 شهریور 1385, 06:33 صبح
سلام من میدونم که این موضوع را قبلا در یک جایی دیگه در این سایت مطرح کردند ولی موضوع اینه که اونجا نمیشد فایلش را دانلود کرد و من یک چیزی توی مایه های pc - cal میخوام چون من نیمی از برنامه ی خودم را به خاطر یک سری از دلایل توی 2003 نوشتم و بقیه اش را دارم توی 2005 مینویسم.... حالا به هر حال اگر کسی میدونه باید واسه تاریخ شمسی وی بی دات نت 2005 چه باید بکنم، بهم بگه لطفا!؟:متفکر:

علیرضا مداح
پنج شنبه 16 شهریور 1385, 07:54 صبح
سلام .
برای بکارگیری تاریخ شمسی میتوانید از اشیاء کلاس System.Globalization.PersianCalendar استفاده نمایید .
مثالی از MSDN:



' This example demonstrates the members of the PersianCalendar class.
Imports System
Imports System.Globalization
Class Sample
Public Shared Sub Main()
'--------------------------------------------------------------------------------
' Get today's date.
'--------------------------------------------------------------------------------
Console.WriteLine(vbCrLf & _
"................. Today ..........................." & vbCrLf)
Dim jc As New PersianCalendar()
Dim thisDate As DateTime = DateTime.Now
' Use thisDate twice to display the name of the day and the current date.
Console.WriteLine("Today is {0:dddd}, {0}", thisDate)
'--------------------------------------------------------------------------------
' Fields
'--------------------------------------------------------------------------------
Console.WriteLine(vbCrLf & _
"............... Fields ............................" & vbCrLf)
Console.WriteLine("PersianEra = {0}", PersianCalendar.PersianEra)
'--------------------------------------------------------------------------------
' Properties
'--------------------------------------------------------------------------------
Console.WriteLine(vbCrLf & _
"............... Properties ........................." & vbCrLf)
Console.Write("Eras:")
Dim era As Integer
For Each era In jc.Eras
Console.WriteLine(" era = {0}", era)
Next era
'--------------------------------------------------------------------------------
Console.WriteLine("MaxSupportedDateTime = {0:G}", jc.MaxSupportedDateTime)
'--------------------------------------------------------------------------------
Console.WriteLine("MinSupportedDateTime = {0:G}", jc.MinSupportedDateTime)
'--------------------------------------------------------------------------------
Console.WriteLine("TwoDigitYearMax = {0}", jc.TwoDigitYearMax)
'--------------------------------------------------------------------------------
' Methods
'--------------------------------------------------------------------------------
Console.WriteLine(vbCrLf & _
"................ Methods ..........................." & vbCrLf)
' Create a date six months in the future and another date six months in the past.
Dim plus6Months As DateTime = jc.AddMonths(thisDate, 6)
Dim minus6Months As DateTime = jc.AddMonths(thisDate, -6)
Console.WriteLine("AddMonths: thisDate + 6 months = {0}", plus6Months)
Console.WriteLine(" thisDate - 6 months = {0}", minus6Months)
'--------------------------------------------------------------------------------
' Create a date five years in the future and another date three years in the past.

Dim plus5Years As DateTime = jc.AddYears(thisDate, 5)
Dim minus3Years As DateTime = jc.AddYears(thisDate, -3)
Console.WriteLine("AddYears: thisDate + 5 years = {0}", plus5Years)
Console.WriteLine(" thisDate - 3 years = {0}", minus3Years)
'--------------------------------------------------------------------------------
Console.WriteLine("GetDayOfMonth: month = {0}", jc.GetDayOfMonth(thisDate))
'--------------------------------------------------------------------------------
Console.WriteLine("GetDayOfWeek: day = {0}", jc.GetDayOfWeek(thisDate))
'--------------------------------------------------------------------------------
Console.WriteLine("GetDayOfYear: day = {0}", jc.GetDayOfYear(thisDate))
'--------------------------------------------------------------------------------
Console.WriteLine("GetDaysInMonth: days = {0}", _
jc.GetDaysInMonth(thisDate.Year, _
thisDate.Month, _
PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("GetDaysInYear: days = {0}", _
jc.GetDaysInYear(thisDate.Year, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("GetEra: era = {0}", jc.GetEra(thisDate))
'--------------------------------------------------------------------------------
Console.WriteLine("GetLeapMonth: leap month (if any) = {0}", _
jc.GetLeapMonth(thisDate.Year, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("GetMonth: month = {0}", jc.GetMonth(thisDate))
'--------------------------------------------------------------------------------
Console.WriteLine("GetMonthsInYear: months in a year = {0}", _
jc.GetMonthsInYear(thisDate.Year, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("GetYear: year = {0}", jc.GetYear(thisDate))
'--------------------------------------------------------------------------------
Console.WriteLine("IsLeapDay: This is a leap day = {0}", _
jc.IsLeapDay(thisDate.Year, _
thisDate.Month, thisDate.Day, _
PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("IsLeapMonth: This is a leap month = {0}", _
jc.IsLeapMonth(thisDate.Year, _
thisDate.Month, _
PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("IsLeapYear: 1370 is a leap year = {0}", _
jc.IsLeapYear(1370, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
' Create a date in the Gregorian calendar and the Persian calendar. The date is
' the current date and an arbitrary time of 20 hours, 30 minutes, and 15.5
' seconds.
Dim dt1 As New DateTime(thisDate.Year, thisDate.Month, thisDate.Day, _
20, 30, 15, 500)
Dim dt2 As DateTime = jc.ToDateTime(thisDate.Year, thisDate.Month, _
thisDate.Day, _
20, 30, 15, 500, _
PersianCalendar.PersianEra)
Console.WriteLine("ToDateTime:")
Console.WriteLine(" Gregorian calendar: {0}", dt1)
Console.WriteLine(" Persian calendar: {0}", dt2)
'--------------------------------------------------------------------------------
' Get the 4-digit year for a year whose last two digits are 99. The 4-digit year
' depends on the current value of the TwoDigitYearMax property.
Console.WriteLine("ToFourDigitYear:")
Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", _
jc.TwoDigitYearMax, jc.ToFourDigitYear(99))
jc.TwoDigitYearMax = thisDate.Year
Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", _
jc.TwoDigitYearMax, jc.ToFourDigitYear(99))
End Sub 'Main
End Class 'Sample
'
'This code example produces the following results:
'
'................. Today ...........................
'
'Today is Friday, 8/20/2004 1:08:37 PM
'
'............... Fields .............................
'
'PersianEra = 1
'
'............... Properties .........................
'
'Eras: era = 1
'MaxSupportedDateTime = 12/31/9999 11:59:59 PM
'MinSupportedDateTime = 3/21/0622 12:00:00 AM
'TwoDigitYearMax = 1410
'
'................ Methods ...........................
'
'AddMonths: thisDate + 6 months = 2/18/2005 1:08:37 PM
' thisDate - 6 months = 2/19/2004 1:08:37 PM
'AddYears: thisDate + 5 years = 8/21/2009 1:08:37 PM
' thisDate - 3 years = 8/21/2001 1:08:37 PM
'GetDayOfMonth: month = 30
'GetDayOfWeek: day = Friday
'GetDayOfYear: day = 154
'GetDaysInMonth: days = 30
'GetDaysInYear: days = 365
'GetEra: era = 1
'GetLeapMonth: leap month (if any) = 0
'GetMonth: month = 5
'GetMonthsInYear: months in a year = 12
'GetYear: year = 1383
'IsLeapDay: This is a leap day = False
'IsLeapMonth: This is a leap month = False
'IsLeapYear: 1370 is a leap year = True
'ToDateTime:
' Gregorian calendar: 8/20/2004 8:30:15 PM
' Persian calendar: 11/11/2625 8:30:15 PM
'ToFourDigitYear:
' If TwoDigitYearMax = 1410, ToFourDigitYear(99) = 1399
' If TwoDigitYearMax = 2004, ToFourDigitYear(99) = 1999
'

M.GhanaatPisheh
پنج شنبه 16 شهریور 1385, 10:08 صبح
دوست عزیز
یه سری هم به لینک زیر بزنید :
http://barnamenevis.org/forum/showthread.php?t=51501

sharifzadegan
جمعه 17 شهریور 1385, 00:25 صبح
FarDate :کامپوننت تقویم و تاریخ فارسی در dotnet 2005

http://www.developercenter.ir/images/FarDate2005.jpg (http://www.developercenter.ir/Forum/showthread.php?t=278)

هادی123
جمعه 17 شهریور 1385, 11:37 صبح
در کامپونت بالا

این دستورها چرا جواب نمی دهد



Dim s As New Date
s = "8 / 6 / 2006"
FarDate1.Fdate = FarDate1.MiladiToShamsi(s)

یا


label1.text = FarDate1.today

شما ها توانسته اید چنین کاری کنید

shervin110uk
شنبه 18 شهریور 1385, 09:02 صبح
سلام من خودم راهش را پیدا کردم، یک ماژول هستش فکر کنم و دیگه اگر یک کم روش کار کنید با مثالی که داره خودتون راحت میتونید راش بندازید... البته نسخه اصلی به 2003 بود که من 2005 کردمش... برای باز کردنش winrar میخواهید ها...
http://shervin.us/farsi-Date.rar