| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1764 人关注过本帖
标题:[开源]一个实现日历的存储过程
只看楼主 加入收藏
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
 问题点数:0 回复次数:20 
[开源]一个实现日历的存储过程

if object_id('dbo.proc_Calendar') is not null
drop proc proc_Calendar
go
create proc proc_Calendar
@intYear varchar(4),
@intMonth varchar(2)
as
declare @date datetime
declare @wd int,@days int
declare @y int,@i int,@j int
declare @r varchar(128)
declare @k varchar(60)
declare @ds int,@n int
set @date=convert(datetime,@intYear+@intMonth+'01')
set @wd=datepart(weekday,@date)-1

if datepart(month,@date)=2
begin
set @y=datepart(year,@date)
if (@y%4=0 and @y%100<>0)or @y%400=0
set @days=29
else
set @days=29
end
else
begin
set @days=case datepart(month,@date)
when 4 then 30
when 6 then 30
when 9 then 30
when 11 then 30
else 31 end
end
set @i=0
set @r=''
while @i<@wd
begin
set @r=@r+' '
set @i=@i+1
end
set @i=1
while @i<@days
begin
if @i<=9
set @r=@r+'0'+cast(@i as varchar(2))
else
set @r=@r+cast(@i as varchar(2))
set @i=@i+1
end
set @ds=@days/7
if @days%7<>0
set @ds=@ds+1

set @i=1
set @n=1

print cast(@intYear as varchar(4))+'年 '+cast(@intMonth as varchar(2))+'月'
print 'Sun Mon Tus Wed Thu Fri Sat'
while @i<=@ds
begin
set @k=''
set @j=1
while @j<=7
begin
set @k=@k+substring(@r,@n,2)+' '
set @n=@n+2
set @j=@j+1
end
print rtrim(@k)
set @i=@i+1
end
go

--调用
exec dbo.proc_Calendar '2007','02'



显示为:

2007年 02月
Sun Mon Tus Wed Thu Fri Sat
01 02 03
04 05 06 07 08 09 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
搜索更多相关主题的帖子: 日历 开源 
2007-10-01 11:02
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
好的.

Repeat  Life=Study;Until (death);
2007-10-01 12:43
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
晕菜,
没人顶?

我的msn: myfend@
2007-10-01 20:19
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
收藏
得分:0 
我来顶一个.呵呵.
放假都不休息啊..

革命尚未成功,同志仍需努力-----+++
2007-10-01 21:25
大年初四
Rank: 1
等 级:新手上路
帖 子:641
专家分:2
注 册:2007-2-21
收藏
得分:0 
厉害

大年初三可怜怜,初四晚上饭一碗
2007-10-01 21:55
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
厉害,呵,学习学习啊

飘过~~
2007-10-02 03:10
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
收藏
得分:0 
purana阿姨在数据库这方面造诣很深嘛.
嘎嘎.
.
学习学习...

革命尚未成功,同志仍需努力-----+++
2007-10-02 21:49
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
晕..免阿姨..
数据库我才刚学.
什么也不懂..

我的msn: myfend@
2007-10-02 22:22
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
以下是引用卡卡艾在2007-10-2 21:49:25的发言:
purana阿姨在数据库这方面造诣很深嘛.
嘎嘎.
.
学习学习...

哈哈哈哈
当作没看到好了.


Repeat  Life=Study;Until (death);
2007-10-02 22:50
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
以下是引用purana在2007-10-2 22:22:09的发言:
晕..免阿姨..
数据库我才刚学.
什么也不懂..

谁叫你乱填资料


Repeat  Life=Study;Until (death);
2007-10-02 22:51
快速回复:[开源]一个实现日历的存储过程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016747 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved