|
sniper_bullet 发表于 2012-12-26 18:40 ![]()
楼主,你的日历程序能不能贴上来看看,学习下
内容如下:- create or replace package display_date is
- procedure display_title (year number , month number) ;
- procedure display_spec_mon (year number , month number) ;
- end ;
复制代码- create or replace package body display_date is
- type t_conv_mon is table of varchar2(10) ;
- conv_mon t_conv_mon := t_conv_mon() ;
-
- procedure display_spec_mon (year number , month number)
- is
- current_mon date ;
- current_line varchar2(21) ;
- begin
- -- dbms_output.put_line (year||lpad(month||'',2,'0')||'01') ;
- display_title (year,month) ;
- current_mon := to_date(year||lpad(month||'',2,'0')||'01','yyyymmdd') ;
- for i in 1 .. (add_months(current_mon,1)-current_mon) loop
- if i = 1 then
- current_line := current_line || (lpad(' ',(to_char(current_mon+i-1,'D')-1)*3,'-- '));
- end if ;
- current_line := current_line || rpad(i||'',3,' ');
- if length(current_line)>=21 then
- dbms_output.put_line(current_line) ;
- current_line := '' ;
- end if ;
- end loop ;
- dbms_output.put_line(current_line) ;
- end ;
-
- procedure display_title (year number , month number)
- is
- begin
- dbms_output.put_line(year||'.'||conv_mon(month)) ;
- dbms_output.put_line(lpad(' ',21,'-')) ;
- dbms_output.put_line('Su Mo Tu We Th Fr Sa');
- end ;
- begin
- conv_mon.extend(12);
- conv_mon(1) := 'January' ;
- conv_mon(2) := 'February' ;
-
- conv_mon(3) := 'Marcy' ;
- conv_mon(4) := 'April' ;
-
- conv_mon(5) := 'May' ;
- conv_mon(6) := 'June' ;
-
- conv_mon(7) := 'July' ;
- conv_mon(8) := 'August' ;
-
- conv_mon(9) := 'September' ;
- conv_mon(10) := 'October' ;
-
- conv_mon(11) := 'November' ;
- conv_mon(12) := 'December' ;
- end ;
复制代码- _sys@DAVID> exec display_date.display_spec_mon(2013,10) ;
- 2013.October
- --------------------
- Su Mo Tu We Th Fr Sa
- -- -- 1 2 3 4 5
- 6 7 8 9 10 11 12
- 13 14 15 16 17 18 19
- 20 21 22 23 24 25 26
- 27 28 29 30 31
- PL/SQL procedure successfully completed.
- _sys@DAVID> exec display_date.display_spec_mon(2012,12) ;
- 2012.December
- --------------------
- Su Mo Tu We Th Fr Sa
- -- -- -- -- -- -- 1
- 2 3 4 5 6 7 8
- 9 10 11 12 13 14 15
- 16 17 18 19 20 21 22
- 23 24 25 26 27 28 29
- 30 31
- PL/SQL procedure successfully completed.
复制代码 |
|