-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathisferiado.gs
36 lines (24 loc) · 943 Bytes
/
isferiado.gs
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
/**
* Check if input date is brazilian holiday.
*
* @param {Date} input The value to check.
* @return boolean.
* @customfunction
*/
function ISFERIADO(input) {
input.setHours(0,0,0,0);
var url = 'http://dadosbr.github.io/feriados/nacionais.json';
var response = UrlFetchApp.fetch(url);
var data = JSON.parse(response.getContentText());
for(var i = 0; i < data.length; i++){
var feriadoObj = data[i];
var feriadoObjDateSplit;
var feriadoDate;
feriadoObjDateSplit = feriadoObj.date !== '' ? feriadoObj.date.split('/') : (feriadoObj.variableDates[input.getFullYear()]).split('/');
feriadoDate = new Date(input.getFullYear(), parseInt(feriadoObjDateSplit[1], 10) - 1, parseInt(feriadoObjDateSplit[0], 10) - 1);
feriadoDate.setHours(0,0,0,0);
if(input.getTime() === feriadoDate.getTime())
break;
}
return input.getTime() === feriadoDate.getTime();
}