使用PLSQL 打印日历

来源:互联网 发布:mysql encode破解 编辑:程序博客网 时间:2024/05/02 08:20

最近有些闲,看完了concept突然有种空虚的感觉。闲话不多说。

用PLSQL写了一个打印日历的功能。


create or replace package display_date is  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_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  ;  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 ;    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  56  7  8  9  10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30 31PL/SQL procedure successfully completed._sys@DAVID> exec display_date.display_spec_mon(2012,12) ;2012.December--------------------Su Mo Tu We Th Fr Sa-- -- -- -- -- -- 12  3  4  5  6  7  89  10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 2930 31PL/SQL procedure successfully completed.


原创粉丝点击