مطالب زیر از تاپیک های همین انجمن استخراج شده اند:
جاوا: PERSIANCALENDAR
سی شارپ: Jalali Calendar یک تاپیک سایت
زبان TSQL: تابع تبدیل تاریخی شمسی و میلادی
دات نت: ابزارهای تبدیل تاریخ برای دات نت
فاکس: کد یا Component
دلفی: ShDate Solutions یک تاپیک سایت
وی بی دات نت: تاپیک سایت
ای اس پی دات نت (ASP.Net) : یک تاپیک سایت
دات نت 2: یک تاپیک از سایت یک تاپیک از سایت (II)
گروهی: PHP, ANSI C, JAVA Scrip, C#, TeX
مجددا TSQL:
CREATE function DLE(@EDate nvarchar(10)) --( @FDate Char(10) output)
returns char(10)
AS
begin
--Declare @EDate DateTime
Declare @EYear int, @EMon smallint, @EDay smallint, @ELeap bit,
@EMonArray Char(12), @EDayOfYear int
Declare @FYear int, @FMon smallint, @FDay smallint, @FLeap bit,
@FMonArray Char(12)
Select @FMonArray= Char(31)+Char(31)+Char(31)+Char(31)+Char(31)+Char(
31)+Char(30)+Char(30)+Char(30)+Char(30)+Char(30)+C har(29)
Select @EMonArray= Char(31)+Char(28)+Char(31)+Char(30)+Char(31)+Char(
30)+Char(31)+Char(31)+Char(30)+Char(31)+Char(30)+C har(31)
--set @EDate = Getdate()
Select @EYear= Year(@EDate)
Select @EMon= Month(@EDate)
Select @EDay= Day(@EDate)
if (@EYear %4)=0 Select @ELeap=1 else Select @ELeap=0
--------------------- Calc Day Of Year
Declare @Temp int, @Cnt int
Select @Cnt=@EMon-1
Select @Temp=0
While @Cnt<>0 begin
if (@Cnt=2)and(@ELeap=1) Select @Temp= @Temp+29
else Select @Temp= @Temp + Ascii(Substring(@EMonArray, @Cnt, 1))
Select @Cnt=@Cnt-1
end
Select @EDayOfYear= @Temp+@EDay
---------------------- Convert to Farsi
Select @Temp= @EDayOfYear-79
if @Temp>0 Select @FYear= @EYear-621
else begin
Select @FYear= @EYear-622
if ((@FYear %4)=3) Select @Temp= @Temp+366 else Select @Temp= @Temp+365
end
if (@FYear %4)=3 Select @FLeap=1 else Select @Fleap=0
Select @Cnt= 1
While (@Temp<>0) and (@Temp>Ascii(Substring(@FMonArray, @Cnt, 1)))
begin
if @Cnt=12
if (@FLeap=1) Select @Temp=@Temp-30 else Select @Temp= @Temp-29
else Select @Temp= @Temp-Ascii(Substring(@FMonArray, @Cnt, 1))
Select @Cnt= @Cnt+1
end
if @Temp<>0 begin
Select @FMon= @Cnt
Select @FDay= @Temp
end else begin
Select @FMon= 12
Select @FDay=30
end
------------------ Create Output
Declare @YStr Char(4), @MStr char(2), @DStr Char(2)
select @YStr= Convert(Char, @FYear)
if @FMon<10 Select @MStr='0'+Convert(Char,@FMon) else Select
@MStr=Convert(Char, @FMon)
if @FDay<10 Select @DStr='0'+Convert(Char,@FDay) else Select
@DStr=Convert(Char, @FDay)
--Select @FDate= @YStr+'/'+@MStr+'/'+@dStr
return @YStr+'/'+@MStr+'/'+@dStr
end
-------------------------------------------------------------------------------------
CREATE function DLF(@EDate DateTime) --( @FDate Char(10) output)
returns char(10)
AS
begin
--Declare @EDate DateTime
if @edate=''
return ''
else
Declare @EYear int, @EMon smallint, @EDay smallint, @ELeap bit,
@EMonArray Char(12), @EDayOfYear int
Declare @FYear int, @FMon smallint, @FDay smallint, @FLeap bit,
@FMonArray Char(12),@TempReturn char(10)
Select @FMonArray= Char(31)+Char(31)+Char(31)+Char(31)+Char(31)+Char(
31)+Char(30)+Char(30)+Char(30)+Char(30)+Char(30)+C har(29)
Select @EMonArray= Char(31)+Char(28)+Char(31)+Char(30)+Char(31)+Char(
30)+Char(31)+Char(31)+Char(30)+Char(31)+Char(30)+C har(31)
--set @EDate = Getdate()
SET @TempReturn =''
if cast(@edate as char(10))='' or cast(@edate as char(10))=null
return @tempreturn
else
Select @EYear= Year(@EDate)
Select @EMon= Month(@EDate)
Select @EDay= Day(@EDate)
if (@EYear %4)=0 Select @ELeap=1 else Select @ELeap=0
--------------------- Calc Day Of Year
Declare @Temp int, @Cnt int
Select @Cnt=@EMon-1
Select @Temp=0
While @Cnt<>0 begin
if (@Cnt=2)and(@ELeap=1) Select @Temp= @Temp+29
else Select @Temp= @Temp + Ascii(Substring(@EMonArray, @Cnt, 1))
Select @Cnt=@Cnt-1
end
Select @EDayOfYear= @Temp+@EDay
---------------------- Convert to Farsi
Select @Temp= @EDayOfYear-79
if @Temp>0 Select @FYear= @EYear-621
else begin
Select @FYear= @EYear-622
if ((@FYear %4)=3) Select @Temp= @Temp+366 else Select @Temp= @Temp+365
end
if (@FYear %4)=3 Select @FLeap=1 else Select @Fleap=0
Select @Cnt= 1
While (@Temp<>0) and (@Temp>Ascii(Substring(@FMonArray, @Cnt, 1)))
begin
if @Cnt=12
if (@FLeap=1) Select @Temp=@Temp-30 else Select @Temp= @Temp-29
else Select @Temp= @Temp-Ascii(Substring(@FMonArray, @Cnt, 1))
Select @Cnt= @Cnt+1
end
if @Temp<>0 begin
Select @FMon= @Cnt
Select @FDay= @Temp
end else begin
Select @FMon= 12
Select @FDay=30
end
------------------ Create Output
Declare @YStr Char(4), @MStr char(2), @DStr Char(2)
select @YStr= Convert(Char, @FYear)
if @FMon<10 Select @MStr='0'+Convert(Char,@FMon) else Select
@MStr=Convert(Char, @FMon)
if @FDay<10 Select @DStr='0'+Convert(Char,@FDay) else Select
@DStr=Convert(Char, @FDay)
--Select @FDate= @YStr+'/'+@MStr+'/'+@dStr
return @YStr+'/'+@MStr+'/'+@dStr
end
ASP کلاسیک:
<%
FMonArray= array (0,31,31,31,31,31,31,30,30,30,30,30,30)
EMonArray= Array(0,31, 28,31,30,31,30,31,31,30,31,30,31)
W = Array ("یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه")
Mon = Array ("فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند")
EYear= Year(Date)
EMon= Month(Date)
EDay = Day(Date)
ELeap=0
if ((EYear mod 4))= 0 Then
ELeap =1
End if
Cnt=EMon-1
Temp=0
While Cnt<>0
if ((Cnt=2)and(ELeap=1)) Then
Temp= Temp+29
else
Temp= Temp + EMonArray(Cnt)
end if
Cnt=Cnt-1
Wend
EDayOfYear= Temp+EDay
' Convert to Farsi
Temp= EDayOfYear-79
if Temp>0 Then
FYear= EYear-621
else
FYear= EYear-622
if ((FYear mod 4)=3) then
Temp= Temp+366
else
Temp= Temp+365
End if
End if
if (FYear mod 4)=3 Then
FLeap=1
else
Fleap=0
End if
Cnt= 1
While( (Temp<>0) and (Temp>FMonArray(Cnt)) )
if Cnt=12 Then
if (FLeap=1) Then
Temp=Temp-30
else Temp= Temp-29
end if
else Temp= Temp-FMonArray(Cnt)
end if
Cnt= Cnt+1
Wend
if Temp<>0 Then
FMon = Cnt
FDay= Temp
else
FMon= 12
FDay=30
End if
DateShamsi = W(WeekDay(Date) - 1) & " " & FDay& " " & Mon(FMon - 1) & " " &FYear
%>
<%
response.write(DateShamsi)
%>