برای تبدیل تاریخ مسیحی به شمسی توسط پاورشل میتوانید از اسکریپت زیر استفاده کنید :


 

#Persian date

if ($args[0] -eq $null) {
$mydt = [datetime]::Now
} else {
if ($args[0].gettype() -eq [datetime]) {
$mydt = $args[0]
} else {
$mydt = [datetime]::Now
}
}

$perdt = New-Object System.Globalization.PersianCalendar

$perday = $perdt.getdayofmonth($mydt)
$permonth = $perdt.getmonth($mydt)
$peryear = $perdt.getyear($mydt)
$per_day_of_week = $perdt.getdayofweek($mydt)

switch ($permonth) {
"1" {$permontxt = "Farvardin"}
"2" {$permontxt = "Ordibehesht"}
"3" {$permontxt = "Khordad"}
"4" {$permontxt = "Tir"}
"5" {$permontxt = "Mordad"}
"6" {$permontxt = "Shahrivar"}
"7" {$permontxt = "Mehr"}
"8" {$permontxt = "Aban"}
"9" {$permontxt = "Azar"}
"10" {$permontxt = "Dey"}
"11" {$permontxt = "Bahman"}
"12" {$permontxt = "Esfand"}
}
switch ($per_day_of_week) {
"Monday" { $perdaytxt = "Doshanbeh"}
"Tuesday" { $perdaytxt = "Sehshanbeh'"}
"Wednesday" { $perdaytxt = "Chaharshanbeh" }
"Thursday" { $perdaytxt = "Panjshanbeh"}
"Friday" {$perdaytxt = "Jomeh"}
"Saturday" { $perdaytxt = "Shanbeh"}
"Sunday" { $perdaytxt = "Yekshanbeh"}
}

$perdisplay = [string]$peryear + "/" + $permonth + "/" + [string]$perday
$result = New-Object PSObject
Add-Member -InputObject $result NoteProperty Day $perday
Add-Member -InputObject $result NoteProperty Month $permontxt
Add-Member -InputObject $result NoteProperty Year $peryear
Add-Member -InputObject $result NoteProperty DayName $perdaytxt
Add-Member -InputObject $result Noteproperty Date $perdisplay


return $result


برای اطلاعات بیشتر در مورد تاریخ شمسی از لینک زیر استفاده کنید :

 PersianCalendar Class