امیر آزاد

نه شرقی نه غربی, نه تازی شدن را برای تو ای بوم بر دوست دارم

امیر آزاد

نه شرقی نه غربی, نه تازی شدن را برای تو ای بوم بر دوست دارم

تابع تبدیل تاریخ میلادی به شمسی

Create FUNCTION [dbo].[fns_persian_date](@ddat datetime) RETURNS char(10) as
BEGIN
Declare @chkab int
Declare @da int
Declare @mo int
Declare @ye int
Declare @ld int
Declare @tt1 varchar(100)
Declare @tt2 varchar(100)
Declare @tt3 varchar(100)
Declare @buf1 Table(i int, v int)
Declare @buf2 table(i int, v int)

set @chkab = 0

insert into @buf1 (i,v) values (1,0)
insert into @buf1 (i,v) values (2,31)
insert into @buf1 (i,v) values (3,59)
insert into @buf1 (i,v) values (4,90)
insert into @buf1 (i,v) values (5,120)
insert into @buf1 (i,v) values (6,151)
insert into @buf1 (i,v) values (7,181)
insert into @buf1 (i,v) values (8,212)
insert into @buf1 (i,v) values (9,243)
insert into @buf1 (i,v) values (10,273)
insert into @buf1 (i,v) values (11,304)
insert into @buf1 (i,v) values (12,334)

insert into @buf2 (i,v) values (1,0)
insert into @buf2 (i,v) values (2,31)
insert into @buf2 (i,v) values (3,60)
insert into @buf2 (i,v) values (4,91)
insert into @buf2 (i,v) values (5,121)
insert into @buf2 (i,v) values (6,152)
insert into @buf2 (i,v) values (7,182)
insert into @buf2 (i,v) values (8,213)
insert into @buf2 (i,v) values (9,244)
insert into @buf2 (i,v) values (10,274)
insert into @buf2 (i,v) values (11,305)
insert into @buf2 (i,v) values (12,335)

--اگر سال میلادی کبیسه نباشد
If Year(@ddat) % 4 != 0
BEGIN
Select @da = v + Day(@ddat) From @buf1 Where i = Month(@ddat)
If @da > 79 --اگر از اول فروردین به بعد باشد
Begin
Set @da = @da - 79
If @da <= 186 -- اگر شش ماه اول سال شمسی باشد
Begin
If @da % 31 = 0
Begin
Set @mo = @da / 31
Set @da=31
End
Else
Begin
Set @mo = Floor(@da / 31) + 1
Set @da = @da % 31
End
Set @ye = Year(@ddat) - 621
End
Else --اگر مهر تا دی باشد
Begin
Set @da = @da - 186
If @da % 30 = 0
Begin
Set @mo = (@da / 30) + 6
Set @da = 30
End
Else
Begin
Set @mo = Floor(@da / 30) + 7
Set @da = @da % 30
End
Set @ye = Year(@ddat) - 621
End
End
Else -- اگر از اول سال میلادی تا آخر اسفند باشد
Begin
If Year(@ddat) > 1996 And (Year(@ddat) % 4) = 1 --استثنا سال کبیسه از سال 96 به بعد
Set @ld=11
Else
Set @ld=10
Set @da = @da + @ld
If @da % 30 = 0
Begin
Set @mo = (@da / 30) + 9
Set @da = 30
End
Else
Begin
Set @mo = Floor(@da / 30) + 10
Set @da = @da % 30
End
Set @ye = Year(@ddat) - 622
End
END
Else --اگر سال میلادی کبیسه باشد
BEGIN
Select @da = v + Day(@ddat) From @buf2 Where i = Month(@ddat)
If Year(@ddat) >= 1996 --سال کبیسه از 96 به بعد
Set @ld = 79
Else
Set @ld = 80
If @da > @ld --اگر از اول فروردین به بعد باشد
Begin
Set @da = @da - @ld --اگر شش ماه اول سال باشد
If @da <= 186
Begin
If @da % 31 = 0
Begin
Set @mo = @da / 31
Set @da = 31
End
Else
Begin
Set @mo = Floor(@da / 31) + 1
Set @da = @da % 31
End
Set @ye = Year(@ddat) - 621
End
Else -- اگر از مهر تا دی باشد
Begin
Set @da = @da - 186
If @da % 30 = 0
Begin
Set @mo = (@da / 30) + 6
Set @da = 30
End
Else
Begin
Set @mo = Floor(@da / 30) + 7
Set @da = @da % 30
End
Set @ye = Year(@ddat) - 621
End
End
Else --اگر از اول سال میلادی تا آخر اسفند باشد
Begin
Set @da = @da + 10
If @da % 30 = 0
Begin
Set @mo = (@da / 30) + 9
Set @da = 30
End
Else
Begin
Set @mo = Floor(@da / 30) + 10
Set @da = @da % 30
End
Set @ye = Year(@ddat) - 622
End
END
Set @tt1 = Convert(varchar(100),@ye)
Set @tt2 = Convert(varchar(100),@mo)
Set @tt3 = Convert(varchar(100),@da)

If Len(@tt2) = 1 Set @tt2 = '0' + @tt2
If Len(@tt3) = 1 Set @tt3 = '0' + @tt3

Return @tt1 + '/' + @tt2 + '/' + @tt3
END

شازده کوچولو

یه نگاه کنید خیلی بدرد بخوره

http://www.shamlou.org/thelittleprince/text/thelittleprince.html#dedication

البته من خودم کتابش رو خوندم
یعنی راستش هنوز هم بعضی وقتا می خونمش
نه اینکه فک کنید کتاب خیلی سختیه ها
اما ادبیاتش یه جوریه که آدمو آروم میکنه

معرفی سایت online.onetcenter.org

اگر در جستجوی یک مرجع مناسب هستید تا بتوانید:
1- شغل های تعریف شده در کشور های آمریکای شمالی را بشناسد
2- تعریف و شرح وظایف کامل شغل مورد نظرتار را بدانید
3- تعهدات کارفرمایتان و مسوولیت های خود را بدانید
4- رزومه مناسب ایجاد کنید
....
کافیست عبارت زیر در در گوگل جستجو کنید : o-net
آدرس سایت: online.onetcenter.org