-
Notifications
You must be signed in to change notification settings - Fork 1
/
get-boss-time.mjs
64 lines (56 loc) · 1.91 KB
/
get-boss-time.mjs
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env zx
import { $ } from "zx";
console.log(process.argv);
const lista = process.argv[3]
.split("\n")
.map((item) => item.trim())
.map((item) => item.replace(/\s\s+/g, " "));
// replace more than one space with one space
// Função para extrair horas e minutos
function extrairHorario(texto) {
const padrao = /(\d{2}):(\d{2})/;
const resultado = padrao.exec(texto);
if (resultado) {
const horas = parseInt(resultado[1]);
const minutos = parseInt(resultado[2]);
return { horas, minutos };
}
return null;
}
// Função para formatar horário
function formatarHorario(horas, minutos) {
return (
horas.toString().padStart(2, "0") +
":" +
minutos.toString().padStart(2, "0")
);
}
// Função para calcular o intervalo de horários
function calcularIntervalo(lista) {
const resultado = [];
const dataReferencia = new Date(lista[0].split(" ")[4]); // Considerando a data da primeira linha como referência
for (let i = 0; i < lista.length; i++) {
const linha = lista[i];
const partes = linha.split(" ");
const horario = extrairHorario(partes[3]);
if (horario) {
const data = partes[4];
const horas = horario.horas;
const minutos = horario.minutos;
const horarioInicio = formatarHorario(horas, minutos);
const horarioFim1 = formatarHorario((horas + 8) % 24, minutos);
const horarioFim2 = formatarHorario((horas + 12) % 24, minutos);
const dataFim =
dataReferencia.getDate() + 1 === parseInt(data.split("/")[0])
? dataReferencia.toLocaleDateString()
: data;
const intervalo = `${horarioFim1} as ${horarioFim2} ${dataFim}`;
const sala = [partes[0], partes[1], partes[2]].join(" ");
resultado.push(`${sala} : ${intervalo}`);
}
}
return resultado;
}
// Executar função e mostrar resultado
const resultado = calcularIntervalo(lista);
resultado.forEach((item) => console.log(item));