标题:[开源]一个实现日历的存储过程
取消只看楼主
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
 问题点数:0 回复次数:6 
[开源]一个实现日历的存储过程

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
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
晕菜,
没人顶?

我的msn: myfend@
2007-10-01 20:19
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
晕..免阿姨..
数据库我才刚学.
什么也不懂..

我的msn: myfend@
2007-10-02 22:22
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
BS..
来破坏我的帖子..

我的msn: myfend@
2007-10-02 22:52
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
我好不容易才发一帖..就被你破坏了.

我的msn: myfend@
2007-10-02 22:58
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
BS
破坏我的帖..

我的msn: myfend@
2007-10-02 23:01
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
不强.不强..菜菜一只..

我的msn: myfend@
2007-10-03 09:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-174453-1-1.html




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

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