blob: 4b8f2eff5a85aaf287423338e39b1c3297f0d254 (
plain)
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
32
33
34
35
36
|
--
-- Perl Weekly Challenge 259
-- Task 1
-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-259>
--
CREATE SCHEMA IF NOT EXISTS pwc259;
CREATE OR REPLACE FUNCTION
pwc259.task1_plpgsql( day date, how_many_days int, holidays date[] )
RETURNS date
AS $CODE$
DECLARE
current_holiday date;
BEGIN
WHILE how_many_days > 0 LOOP
day := day + 1;
WHILE extract( dow from day ) IN ( 0, 6 ) LOOP
day := day + 1;
END LOOP;
FOREACH current_holiday IN ARRAY holidays LOOP
IF current_holiday = day THEN
day := day + 1;
END IF;
END LOOP;
how_many_days := how_many_days - 1;
END LOOP;
RETURN day;
END
$CODE$
LANGUAGE plpgsql;
|