Declare @MyDate JalaliDate = '1392/02/11 21:38:24' Select @MyDate.ToString() as MyDateTime , @MyDate.GetDate() as MyDate , @MyDate.GetTime() as MyTime , @MyDate.Year as MyYear , @MyDate.Month as MyMonth , @MyDate.Day as MyDay , @MyDate.Hour as MyHour , @MyDate.Minute as MyMinute , @MyDate.Second as MySecond , @MyDate.JalaliDateAdd('Year',1) as NextYear , @MyDate.JalaliDateAdd('Month',1) as NextMonth , @MyDate.JalaliDateAdd('Day',1) as NextDay , @MyDate.JalaliDateAdd('Hour',1) as NextHour , @MyDate.JalaliDateAdd('Minute',1) as NextMinute , @MyDate.JalaliDateAdd('Second',1) as NextSecond
با این همه، همانسان که در پرسوجوی بالا هم میبینید؛ ناگزیر شدم تاریخ و زمان را خودم وارد کنم و هرآینه در واقعیت شما جهت پرسوجو روی زمان کنونی، ناگزیر به استفاده از یک تابع برای تبدیل تقویم میلادی به خورشیدی هستیم. به نظر شما بهتر نیست دست به کار شویم و تابعی برای تبدیل تاریخ میلادی به خورشیدی بنویسیم؟
برای اینکار پروژهای را که در دو درس 1 ساختیم باز کنید و سپس روی نام پروژه در Solution Explorer راستکلیک کرده و Add New Item را انتخاب کنید.
محتویات فایل بازشده را حذف کنید و دستورهای زیر را جایگزین کنید:
using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; public partial class UserDefinedFunctions { [Microsoft.SqlServer.Server.SqlFunction] public static JalaliDate GetCurrentDateTime() { System.Globalization.PersianCalendar pers = new System.Globalization.PersianCalendar(); DateTime CurrentDate = DateTime.Now; JalaliDate jl; jl.Year = (Int16)pers.GetYear(CurrentDate); jl.Month = (byte)pers.GetMonth(CurrentDate); jl.Day = (byte)pers.GetDayOfMonth(CurrentDate); jl.Hour = (byte)pers.GetHour(CurrentDate); jl.Minute = (byte)pers.GetMinute(CurrentDate); jl.Second = (byte)pers.GetSecond(CurrentDate); return jl; } }
Declare @MyDate JalaliDate = dbo.GetCurrentDateTime()
Select dbo.GetCurrentDateTime().ToString()
دنباله دارد...