Main Tables Views Materialized Views Indexes Constraints Triggers Procedures Functions Packages Sequences Java Sources Sanity Check Index DDL scrips
Package source Package body source

RHN_DATE_MANIP

DDL script

Package source

Legend: comment string keyword reserved word operator
     1: package rhn_date_manip
     2: is
     3: 	periods_ago number;
     4: 	function get_reporting_period_start return date;
     5: 	function get_reporting_period_end return date;
     6: end rhn_date_manip;

Package body source

Legend: comment string keyword reserved word operator
     1: package body rhn_date_manip
     2: is
     3: 	function get_reporting_period_start
     4: 	return date is
     5: 		months_ago	number;
     6: 		weeks_ago	number;
     7: 		target_date	date;
     8: 		day_number	number;
     9: 	begin
    10: 		months_ago := rhn_date_manip.periods_ago/2;
    11: 		weeks_ago := mod(rhn_date_manip.periods_ago,2);
    12: 
    13: 		target_date := trunc(add_months(sysdate,-months_ago)-(7*weeks_ago));
    14: 		day_number := to_char(target_date,'DD');
    15: 		-- squish the date to the 1st or the 16th
    16: 		if day_number > 16 then
    17: 			target_date := target_date - (day_number - 16);
    18: 		else
    19: 			target_date := target_date - (day_number - 1);
    20: 		end if;
    21: 		return target_date;
    22: 	end get_reporting_period_start;
    23: 
    24: 	function get_reporting_period_end
    25: 	return date is
    26: 		months_ago	number;
    27: 		weeks_ago	number;
    28: 		target_date	date;
    29: 		day_number	number;
    30: 	begin
    31: 		months_ago := rhn_date_manip.periods_ago/2;
    32: 		weeks_ago := mod(rhn_date_manip.periods_ago,2);
    33: 
    34: 		target_date := trunc(add_months(sysdate,-months_ago)-(7*weeks_ago));
    35: 		day_number := to_char(target_date,'DD');
    36: 		-- squish the date to the 1st or the 16th
    37: 		if day_number > 16 then
    38: 			target_date := last_day(target_date);
    39: 		else
    40: 			target_date := target_date + (-day_number + 15) + (1-1/86400);
    41: 		end if;
    42: 		return target_date;
    43: 	end get_reporting_period_end;
    44: end rhn_date_manip;