Capítulo 12: Lógica Temporal e Prazos Logísticos (Sistemas de Data e Dias Úteis)

🎯 Objetivo da Aula

Na logística e na administração, o tempo é uma variável crítica: o atraso de uma entrega pode gerar multas contratuais pesadas ou parar uma linha de montagem inteira. No entanto, calcular prazos no computador não é tão simples quanto somar dias em um calendário de papel, pois caminhões e galpões operam com dias úteis, feriados regionais e escalas de trabalho específicas.

Nesta aula, você aprenderá a:

  1. Compreender o Sistema de Números Seriais de data e hora do Excel.
  2. Extrair componentes temporais com DIA(), MÊS(), ANO() e DIA.DA.SEMANA().
  3. Calcular o Lead Time Real (Dias Corridos) e o Lead Time Operacional (Dias Úteis) com DIATRABALHOTOTAL.
  4. Projetar datas futuras de entrega e vencimento pulando sábados, domingos e feriados com DIATRABALHO e DIATRABALHO.INTL.
  5. O paralelo com Epoch / Unix Timestamps na ciência da computação.

🏢 O Cenário Prático (Seu Desafio)

Situação: A FastLog assinou um contrato de SLA (Service Level Agreement) com uma grande rede de varejo: todas as encomendas devem ser entregues em até 5 dias úteis após a expedição. Se a entrega ultrapassar o prazo ou se o caminhão tentar descarregar no sábado/domingo (quando o centro de distribuição do cliente está fechado), a empresa recebe penalização.

Missão: Construir o Cronômetro de SLA da FastLog:

  1. Calcular automaticamente a data exata limite de entrega pulando fins de semana e feriados nacionais (DIATRABALHO).
  2. Medir o tempo que a carga efetivamente levou em dias de trabalho (DIATRABALHOTOTAL).
  3. Sinalizar se o SLA foi cumprido ou violado.

🧠 Fundamentos: Como o Computador Enxerga o Tempo

1. O Segredo dos Números Seriais (Serial Date System)

O Excel não guarda textos como "15/05/2026" internamente. Para a máquina, toda data é um número inteiro:

  • O ponto de partida do sistema é o dia 01/01/1900, que vale o número 1.
  • O dia 02/01/1900 vale 2.
  • A data de hoje é simplesmente a quantidade de dias transcorridos desde 1900 (ex: ~46.000).
graph LR
    Date["Data Visual: 14/05/2026"] <--> Num["Número Serial Real: 46156"]
    Hour["Hora: 14/05/2026 12:00 (Meio-dia)"] <--> Dec["Número Serial Decimal: 46156.50"]
    
    style Date fill:#2980b9,stroke:#fff,stroke-width:2px,color:#fff
    style Num fill:#217346,stroke:#fff,stroke-width:2px,color:#fff

E como funcionam as Horas?
As horas são as frações decimais de 1 dia (24h = 1,0):

  • 12h00 (Meio-dia) = 0,5 (metade do dia)
  • 06h00 (Manhã) = 0,25 (um quarto do dia)
  • 18h00 (Tarde) = 0,75

2. Principais Funções de Tempo do Excel

A. Funções Dinâmicas de Relógio

  • =HOJE() ➔ Retorna a data atual do sistema (atualiza sozinha todo dia).
  • =AGORA() ➔ Retorna a data e a hora exata com minutos e segundos.

B. Funções de Cálculo de Prazos Úteis

  1. DIATRABALHO(data_inicio; dias_uteis; [feriados])
    • Pula automaticamente sábados e domingos e devolve a data futura.
    • Exemplo: =DIATRABALHO("15/05/2026"; 5; $J$1:$J$10)
  2. DIATRABALHOTOTAL(data_inicio; data_fim; [feriados])
    • Conta quantos dias úteis de trabalho existiram entre duas datas.
    • Exemplo: =DIATRABALHOTOTAL(B2; C2; $J$1:$J$10)
  3. DIATRABALHO.INTL / DIATRABALHOTOTAL.INTL
    • Permite personalizar os dias de folga (ex: galpões que fecham às segundas-feiras ou trabalham aos sábados).

3. 🌐 Quadro Bilíngue (PT-BR vs EN)

Função (Português)Equivalente em InglêsO que faz?
HOJETODAYRetorna a data atual.
AGORANOWRetorna data e hora corrente.
DIATRABALHOWORKDAYCalcula data final somando apenas dias úteis.
DIATRABALHOTOTALNETWORKDAYSConta quantos dias úteis existem entre duas datas.
DIA.DA.SEMANAWEEKDAYRetorna o número do dia (1 = Domingo, 2 = Segunda…).

4. 💡 Visão de Programador: Unix Timestamps e ISO 8601

Na programação Web e back-end (JavaScript, Python, bancos de dados), o padrão universal de tempo é o Unix Epoch: a contagem de segundos transcorridos desde 01/01/1970 00:00:00 UTC.

1
2
3
4
// Em JavaScript: Date.now() retorna os milissegundos desde 1970
const agora = new Date();
const prazoEntrega = new Date();
prazoEntrega.setDate(agora.getDate() + 5); // Adiciona 5 dias

No Excel, o raciocínio é idêntico: datas são números e podem ser somadas e subtraídas diretamente (DataFinal - DataInicial).


📖 Exemplo Guiado: Dias Corridos vs Dias Úteis

Passo a Passo

  1. Em A1 digite Data de Expedição: e em B1 digite uma sexta-feira (ex: 15/05/2026).
  2. Em A2 digite Prazo Corrido (3 dias): e na célula B2 digite =B1+3. (Retornará 18/05/2026, pulando o fim de semana como dias normais).
  3. Em A3 digite Prazo Útil (3 dias úteis): e na célula B3 digite =DIATRABALHO(B1; 3). (Retornará 20/05/2026, pulando sábado e domingo e entregando na quarta-feira!).

✅ Resultado Esperado (Exemplo)

AB
1Data de Expedição:15/05/2026 (Sexta-feira)
2Prazo Corrido (3 dias):18/05/2026 (Segunda-feira)
3Prazo Útil (3 dias úteis):20/05/2026 (Quarta-feira)

🛠️ Prática Obrigatória 1: Monitor de SLA de Entregas

Passo 1: Construindo a Matriz de Cargas e Calendário de Feriados

Na Planilha 1, monte a tabela de feriados nas células J1 até J3:

  • J1: Feriados_Nacionais
  • J2: 21/04/2026
  • J3: 01/05/2026

Na mesma planilha, monte o relatório de fretes nas células A1 até F5:

ABCDEF
1ID_CargaData_SaídaPrazo_SLA_DiasData_Limite_EntregaData_Chegada_RealStatus_SLA
2FL-50120/04/2026528/04/2026
3FL-50222/04/2026329/04/2026
4FL-50327/04/2026404/05/2026
5FL-50428/04/2026230/04/2026

Passo 2: Calculando a Data Limite Útil com Feriados (DIATRABALHO)

  1. Na célula D2, calcule a data máxima permitida: =DIATRABALHO(B2; C2; $J$2:$J$3)
  2. Arraste até a linha 5. (Observe que na linha 2, como 21/04 é feriado e há um fim de semana, a data limite pula para 28/04).

Passo 3: Avaliando o Cumprimento do SLA

  1. Na célula F2, faça o teste condicional de pontualidade: =SE(E2<=D2; "No Prazo"; "ATRASADO")
  2. Arraste até a linha 5.

✅ Resultado Esperado (Prática 1)

ABCDEF
1ID_CargaData_SaídaPrazo_SLAData_LimiteData_ChegadaStatus_SLA
2FL-50120/04/2026528/04/202628/04/2026No Prazo
3FL-50222/04/2026327/04/202629/04/2026ATRASADO
4FL-50327/04/2026404/05/202604/05/2026No Prazo
5FL-50428/04/2026230/04/202630/04/2026No Prazo

🛠️ Prática Obrigatória 2: Cálculo de Lead Time Efetivo (DIATRABALHOTOTAL)

Passo 1: A Tabela de Auditoria de Viagens

Na Planilha 2 (renomeie para Lead_Time), crie:

  • A1: Motorista, B1: Data_Saída, C1: Data_Entrega, D1: Dias_Corridos, E1: Dias_Úteis_Trabalhados
  • Linha 2: Carlos | 10/05/2026 | 18/05/2026
  • Linha 3: Mariana | 04/05/2026 | 08/05/2026

Passo 2: As Fórmulas de Duração

  1. Na célula D2, calcule os dias corridos por subtração direta: =C2-B2.
  2. Na célula E2, calcule apenas os dias úteis: =DIATRABALHOTOTAL(B2; C2).
  3. Arraste para a linha 3.

✅ Resultado Esperado (Prática 2)

Para o Carlos, foram 8 dias corridos de viagem, mas apenas 6 dias úteis de trabalho, pois 2 dias foram de fim de semana.


📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_12_SeuNome_SeuSobrenome.xlsx
  2. No Microsoft Teams, envie na tarefa “Capítulo 12 - Lógica de Datas e Prazos”.
  3. Clique em Entregar (Turn In).

💡 Checkpoint de Lógica

Você aprendeu como a manipulação de grandezas contínuas (tempo, horas, datas) é traduzida para variáveis discretas na computação. O controle preciso de datas úteis é a base de sistemas de roteirização e WMS (Warehouse Management System).


🔥 Desafio de Fixação: Extração com DIA.DA.SEMANA

Use a função =DIA.DA.SEMANA(B2; 2) (onde o argumento 2 define Segunda=1 até Domingo=7) para impedir embarques que caiam no Domingo (7):

1
=SE(DIA.DA.SEMANA(B2; 2) = 7; "Proibido Embarcar no Domingo"; "Embarque Autorizado")

📝 Atividade Extra: Questionário de Fixação (Caderno)

Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.

  1. Como o Excel armazena internamente uma data (explique o Sistema de Números Seriais)?
  2. Qual a diferença entre HOJE() e AGORA()?
  3. O que a função DIATRABALHO calcula e qual sua principal vantagem em relação a somar dias diretamente?
  4. Para que serve a função DIATRABALHOTOTAL?
  5. Como as horas são representadas como frações decimais do dia? Dê um exemplo (ex: meio-dia).
  6. Qual a diferença entre “Dias Corridos” e “Dias Úteis”?
  7. Como podemos incluir feriados no cálculo de DIATRABALHO?
  8. O que é o Unix Timestamp e como ele se relaciona com o sistema de datas do Excel?
  9. Qual função retorna o número correspondente ao dia da semana de uma data?
  10. Por que o controle preciso de prazos é crítico em um contrato de SLA logístico?