Google Apps Script:
Comparando duas datas

Como fazer:

No Google Apps Script, as datas são comparadas usando objetos Date do JavaScript, possibilitando o uso de métodos padrão para avaliar qual de duas datas é mais cedo, mais tarde ou se são iguais. Aqui está uma abordagem básica:

function compareDates() {
  var date1 = new Date('2023-04-01T00:00:00');
  var date2 = new Date('2023-04-15T00:00:00');

  // Comparar datas
  if (date1 < date2) {
    Logger.log('Date1 é antes de Date2');
  } else if (date1 > date2) {
    Logger.log('Date1 é depois de Date2');
  } else {
    Logger.log('Ambas as datas são iguais');
  }
}

// Saída de exemplo:
// Date1 é antes de Date2

Para comparações mais detalhadas (como o número de dias entre duas datas), você pode subtrair uma data da outra, o que retorna a diferença em milissegundos:

function daysBetweenDates() {
  var date1 = new Date('2023-04-01');
  var date2 = new Date('2023-04-15');
  
  var difference = date2 - date1;
  
  var days = difference / (1000 * 60 * 60 * 24); // Converter milissegundos em dias
  Logger.log(days + ' dias entre as datas');
}

// Saída de exemplo:
// 14 dias entre as datas

Aprofundando

O Google Apps Script aproveita os princípios fundamentais dos objetos Date do JavaScript para comparação de datas, o que tem sido um aspecto fundamental da linguagem desde sua criação. O uso de milissegundos como valor comparativo desde a Época Unix (1º de janeiro de 1970) proporciona um alto nível de precisão para determinar diferenças ou semelhanças entre datas.

Embora essa abordagem seja eficaz para a maioria dos casos de uso dentro do escopo do Google Apps Script, vale ressaltar que operações em datas — como correções de fuso horário e cálculos de ano bissexto — às vezes podem levar a confusões. Desenvolvedores de outras linguagens de programação (como Python, onde os módulos datetime e dateutil oferecem um tratamento mais matizado das datas) podem achar o objeto Date do JavaScript carente de recursos.

Para manipulações de datas complexas e além de comparações simples, bibliotecas como Moment.js (que ainda podem ser usadas dentro do Google Apps Script por meio de APIs externas) oferecem um conjunto rico de funcionalidades que abordam essas deficiências. No entanto, o objeto Date do JavaScript nativo continua a servir como uma ferramenta confiável para a maioria das tarefas de comparação de datas, particularmente no contexto do Google Apps Script e sua integração com a suíte de aplicativos do Google.