سلام .
برای بکارگیری تاریخ شمسی میتوانید از اشیاء کلاس 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
'