Instrução

Calcule a diferença de data entre dois campos de texto usando Arcade no ArcGIS Online

Last Published: January 30, 2024

Descrição

No ArcGIS Online, a função DateDiff() pode não funcionar corretamente ao calcular a diferença de data entre dois campos, especialmente se os campos de data estiverem em formatos diferentes e forem armazenados como texto ou string. A diferença de data entre dois campos de texto pode ser calculada usando uma expressão Arcade. Esse método transforma informações temporais qualitativas em métricas quantitativas, permitindo abordagens mais informadas e estratégicas para gerenciar e interpretar dados sensíveis ao tempo.

Note:
The date difference between two text fields can only be calculated if the date format used in the text fields is in dd-mmmm-yyyy.

Este artigo fornece o fluxo de trabalho para calcular a diferença de data entre dois campos de texto em uma tabela de atributos utilizando uma expressão Arcade no ArcGIS Online.

Solução ou Solução Provisória

  1. No ArcGIS Online, clique na camada de feição hospedada desejada. Na página de detalhes do item, clique na guia Dados.
Note:
Skip to Step 3 if the script is run on an existing field.
  1. Na visualização de Tabela , crie um novo campo. Consulte ArcGIS Online: Adicionar um campo para instruções. Certifique-se de que String ou Duplo esteja selecionado na lista suspensa Tipo . Neste exemplo, um campo denominado Date_Difference é criado.
  2. Clique no cabeçalho do campo e selecione Calcular. Neste exemplo, Date_Difference é selecionado.
  3. Na caixa de diálogo Calcular Campo , clique em Arcade.
  4. Na caixa de diálogo Calculadora Arcade , especifique o campo Expressão da seguinte forma para calcular a diferença de data entre os dois campos de texto em dias:
var months = {
    "January": "01",    
    "February": "02",
    "March": "03",
    "April": "04",
    "May": "05",
    "June": "06", 
    "July": "07",
    "August": "08",
    "September": "09",
    "October": "10",
    "November": "11",
    "December": "12"
};
  1. Esta variável é usada para definir a divisão dos meses.
var <variable1> = $feature.<field_name1>;
var <variable2> = $feature.<field_name2>;
  1. Substitua <variable1> e <variable2> pelas variáveis para representar os nomes de campo. Neste exemplo, startDate e endDate são usados.
  2. Substitua <field_name1> e <field_name2> pelos nomes dos campos que contêm os valores de campo. Neste exemplo, StartDate e EndDate são usados.
var <variable3> = Split(<variable1>, " ");
var <variable4> = Split(<variable2>, " ");
  1. Substitua <variable3> e <variable4> pelas variáveis para representar a divisão de <variable1> e <variable2> em uma matriz de partes usando a função Dividir. Neste exemplo, dateParts e dateParts2 são usados.
var dayNum = dateParts[0];
var monthNum = months[dateParts[1]];
var yearNum = dateParts[2];

var dayNum2 = dateParts2[0]; var monthNum2 = months[dateParts2[1]]; var yearNum2 = dateParts2[2];
  1. Essas variáveis armazenam os componentes dia, mês e ano da data após a divisão.
var <variable5>  = yearNum + "-" + monthNum + "-" + dayNum;
var <variable6> = yearNum2 + "-" + monthNum2 + "-" + dayNum2;

var dateDifference = DateDiff(<variable6>, <variable5>, "days");
return dateDifference;
  1. Substitua <variable5> e <variable6> pelas variáveis desejadas. Neste exemplo, updatedStartDate e updatedStartDate são usados.

Abaixo está o código de trabalho completo da expressão Arcade.

var months = {
  "January": "01", "February": "02", "March": "03", "April": "04", "May": "05", "June": "06", "July": "07", "August": "08", "September": "09", "October": "10", "November": "11", "December": "12"
}; var startDate = $feature.StartDate; var endDate = $feature.EndDate; var dateParts = Split(startDate, " "); var dateParts2 = Split(endDate, " "); var dayNum = dateParts[0]; var monthNum = months[dateParts[1]]; var yearNum = dateParts[2]; var dayNum2 = dateParts2[0]; var monthNum2 = months[dateParts2[1]]; var yearNum2 = dateParts2[2]; var updatedStartDate = yearNum + "-" + monthNum + "-" + dayNum; var updatedEndDate = yearNum2 + "-" + monthNum2 + "-" + dayNum2; var dateDifference = DateDiff(updatedEndDate, updatedStartDate, "days"); return dateDifference;
  1. Clique em Testar para verificar a expressão e clique em OK para aplicar a consulta.
Expressão Arcade especificada na caixa de diálogo Calculadora Arcade box.png
Note:
To calculate the difference between the two date fields in other units such as hours, minutes, or seconds, use the same expression and replace 'days' with the desired unit of measurement.

A imagem abaixo exibe a diferença de data em dias entre os dois campos de texto calculados e preenchidos no novo campo.

Tabela de atributos exibindo a diferença de data entre dois fields.png de texto

ID do Artigo: 000031779

Receba notificações e encontre soluções para problemas novos ou comuns

Obtenha respostas resumidas e soluções de vídeo do nosso novo chatbot de IA.

Baixe o Aplicativo de Suporte da Esri

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download