> 데이터 베이스 > MySQL 튜토리얼 > 使用PLSQL 打印日历

使用PLSQL 打印日历

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:24:55
원래의
1342명이 탐색했습니다.

最近有些闲,看完了concept突然有种空虚的感觉。闲话不多说。 用PLSQL写了一个打印日历的功能。 create or replace package disp

最近有些闲,,看完了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  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.

linux

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿