| Login 
 
 
 
 
 Latest Code Ticker for SQL.
 
 Daily Code Email
 
 
 
 
 
 | 
 |    |  |    | 
		
			|  |   |   
 | | Submitted on: 7/25/2002 11:09:18 AM By: Sergio Rueda
 Level: Intermediate
 User Rating:
        By 1 Users Compatibility:Oracle
 
 Users have accessed this code 4047 times.
 
 |  | 
 |    |  |    | Creates a 12 month calendar for any given year 
 |  |  |  |  |  |  | code: Can't Copy and Paste this?
 Click here for a copy-and-paste friendly version of this code!
 
  | Terms of Agreement:
 By using this code, you agree to the following terms...
 1) You may use 
	 this code in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
 2) You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.
 3) You may link to this code from another website, but ONLY if it is not wrapped in a frame.
 4) You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.
 |  | 
--**************************************
--     
-- Name: calproc.sql
-- Description:Creates a 12 month calend
--     ar for any given year
-- By: Sergio Rueda
--
-- Inputs:year
--
-- Returns:12 month calendar
--
-- Assumes:nothing
--
--This code is copyrighted and has-- limited warranties.Please see http://
--     www.Planet-Source-Code.com/vb/scripts/Sh
--     owCode.asp?txtCodeId=515&lngWId;=5--for details.--**************************************
--     
UNIX korn shell sample calling program:
##
# creates a calendar FOR a given year
#
# Input:Year
#
# Output: 12 month calendar
# stored IN a FILE called CALENDAR.year
#
##
clear 
echo " "
echo "Now creating file: calendar.$1"
echo " "
echo "
SET serveroutput ON size 20000 format WORD_WRAPPED
EXECUTE srmcal($1);
" | sqlplus -s gemsprod/gemsprod > calendar.$1
==================================================
PL/SQL PROCEDURE TO CREATE THE CALENDAR
-- Written by Sergio Rueda.
-- 07/10/2002
--
-- Procedure to create a 12 month calend
--     ar for any given year.
--
--
CREATE or replace PROCEDURE srmcal(ano IN number) AS
ldom number(02);
line varchar2(26);
mname varchar(10);
wday number(02);
    begin
    FOR mes IN 1 .. 12 loop
     SELECT substr(last_day(to_date('01-'||TO_CHAR(mes)||'-'||TO_CHAR(ano),'DD-MM-YYYY')),1,2) INTO ldom FROM dual;
     SELECT to_char(to_date('01-'||TO_CHAR(mes)||'-'||TO_CHAR(ano),'DD-MM-YYYY'), 'Month') INTO mname FROM dual;
     SELECT to_number( to_char(to_date('01-'||TO_CHAR(mes)||'-'||TO_CHAR(ano),'DD-MM-YYYY'),'D')) INTO wday FROM dual;
    --
    --
     dbms_output.put_line('.');
     dbms_output.put_line('.');
     dbms_output.put_line('. '||mname||' -- '|| ano);
     dbms_output.put_line('.');
     dbms_output.put_line('+ SUNMONTUEWEDTHUFRISAT +');
     dbms_output.put_line('+------------------------------------------------+');
    --
    --
     FOR dia IN 1 .. wday - 1 loop
     dbms_output.put( '|......');
 END loop;
--
--
 FOR dia IN 1 .. ldom loop
 IF ( dia < 10) THEN
 line := '|'||dia||' ';
 ELSE
 line := '| '||dia||' ';
 END if;
 --
--
IF mod(dia + (wday - 1),7) = 0 THEN
dbms_output.put(line || '|');
dbms_output.new_line;
dbms_output.put_line('+------+------+------+------+------+------+------+ ');
else
dbms_output.put(line);
END if;
 END loop;
 dbms_output.new_line;
dbms_output.put_line('+------+------+------+------+------+------+------+ ');
 END loop;
 end;
 /
 |  |  |  |  | Report Bad Submission |    |  |  |  |  | Your Vote! |  | See Voting Log |  |  |  | Other User Comments |  | 4/11/2003 3:54:40 AM: 
 Dear, 
I need a script for subtracting 
a year. For example: I have data in 
date column say 2003/01/31, I want to 
subtract one year to get 2002/01/31. 
Please teach me how to perform the 
above said question.  
Thanking you 
in advance,
Raj 
 
 |  |  |    | Add Your Feedback! |    | Note:Not only will your feedback be posted, but an email will be sent to the code's author in your name. 
 NOTICE: The author of this code has been kind enough to share it with you.  If you have a criticism, please state it politely or it will be deleted.
 
 For feedback not related to this particular code, please click here.
 
 |  |  |  
 | 
 
 
 |