PDA

View Full Version : نیازبه کد زمان وتاریخ شمسی



rahil_2007
سه شنبه 21 اسفند 1386, 08:37 صبح
با سلام
من نیاز به کد زمان وتارخ شمسی با vb.net دارم.
اگر کسی کد آنرا دارد برای من بگذارد

Dariuosh
سه شنبه 21 اسفند 1386, 08:52 صبح
هم کدهای مختلف هم کنترلهای مختلف خیلی تو سایت هست یه ذره بگردی پیدا میکنی
از اینم میتونی استفاده کنی

System.Globalization.PersianCalendar

bahar2008
سه شنبه 21 اسفند 1386, 10:03 صبح
من کد store procedure تاریخ شمسی رو دارم و کاملا درست کار می کنه و خودم دارم ازش استفاده می کنم.
اگر store procedure به دردت می خوره بگو تا کدش رو برات همین جا بزارم.

rahil_2007
سه شنبه 21 اسفند 1386, 10:05 صبح
اگر ممکنه stored procedure را برام بذارین

saman_itc
سه شنبه 21 اسفند 1386, 11:09 صبح
اینجا هم هست

bahar2008
سه شنبه 21 اسفند 1386, 11:35 صبح
اینم از کد............البته این کد فقط برای تاریخ هست



ALTER Proc GetShamsiInfo
as
Declare
@Year Integer,
@Month Integer,
@Day Integer,
@F_Year Integer,
@F_Month Integer,
@F_Day Integer,
@F_Day_Name Varchar(10),
@F_Month_Name Varchar(10),
@LastDay Integer,
@Plus Integer,
@Minus Integer,
@Intercalary Integer,
@S_Year Varchar(5),
@S_Month Varchar(5),
@S_Day Varchar(5),
@E_Date Varchar(20),
@Ret Varchar(20)
Set @Plus = 0
Set @Year = Year(Getdate())
Set @Month = Month(Getdate())
Set @Day = Day(Getdate())
----- بدست آوردن تاریخ میلادی
Set @S_Year = Cast(@Year AS VarChar(5))
Set @S_Month = Cast(@Month AS VarChar(5))
Set @S_Day = Cast(@Day AS VarChar(5))
IF Len(@S_Month) < 2
Set @S_Month = '0'+@S_Month

IF Len(@S_Day) < 2
Set @S_Day = '0'+@S_Day
Set @E_Date = @S_Year + @S_Month+ @S_Day
----- بدست آوردن تاریخ میلادی
----- بدست آوردن نام روز به فارسی
Set @F_Day_Name = Case DATEPART(dw, Getdate())
When 1 Then 'یکشنبه'
When 2 Then 'دوشنبه'
When 3 Then 'سه شنبه'
When 4 Then 'چهارشنبه'
When 5 Then 'پنجشنبه'
When 6 Then 'جمعه'
When 7 Then 'شنبه'
End
----- بدست آوردن نام روز به فارسی
IF ((@Month = 1) or (@Month = 5) or (@Month = 6))
Set @Plus = 10
IF ((@Month = 2) or (@Month = 4))
Set @Plus = 11
IF ((@Month = 3) or (@Month = 7) or (@Month = 8) or
(@Month = 9) or (@Month = 11) or (@Month = 12))
Set @Plus = 9
IF (@Month = 10)
Set @Plus = 8
Set @Year = @Year % 100
Set @Intercalary = @Year
IF (@Intercalary % 4 = 0)
IF (@Month > 2)
Set @Plus = @Plus + 1
IF ((@Intercalary - 1) % 4 = 0)
begin
Set @LastDay = 30
IF (@Month <= 3)
Set @Plus = @Plus + 1
end
Else
Set @LastDay = 29
Set @F_Year = @Year - 22
IF (@F_Year < 0)
Set @F_Year = @F_Year + 100
Set @F_Month = @Month + 9
IF (@F_Month > 12)
begin
Set @F_Month = @F_Month - 12
Set @F_Year = @F_Year + 1
end
IF (@F_Month > 12)
begin
Set @F_Month = @F_Month - 12;
Set @F_Year = @F_Year + 1
end;
Set @F_Day = @Day + @Plus
IF (@F_Month <= 6)
Set @Minus = 31
Else
IF ((@F_Month > 6) and (@F_Month<12))
Set @Minus = 30
Else
Set @Minus = @LastDay
IF (@F_Day > @Minus)
begin
Set @F_Day = @F_Day - @Minus;
Set @F_Month = @F_Month + 1
end
IF @F_Month >= 10
Set @Ret = @Ret
Else
Set @Ret =@Ret +'0'+ Cast(@F_Month As Varchar(4))
IF @F_Year >= 10
Set @Ret =@f_day
Else
Set @Ret = '0'+ Cast(@F_year As Varchar(1))
----- بدست آوردن نام ماه به فارسی
Set @F_Month_Name = Case @F_Month
When 1 Then 'فروردین'
When 2 Then 'اردیبهشت'
When 3 Then 'خرداد'
When 4 Then 'تیر'
When 5 Then 'مرداد'
When 6 Then 'شهریور'
When 7 Then 'مهر'
When 8 Then 'آبان'
When 9 Then 'آذر'
When 10 Then 'دی'
When 11 Then 'بهمن'
When 12 Then 'اسفند'
End
----- بدست آوردن نام ماه به فارسی
IF @F_Day >= 10
Set @Ret = @Ret
Else
Set @Ret ='0'+@Ret
Select
@Ret As FarsiDate,
@F_Month_Name AS FarsiMonthName,
@F_Day_Name AS FarsiDayName

return