Logic bug: ACCEPT FROM DATE returns 2-digit YYMMDD instead of 4-digit YYYYMMDD (Y2K bug) – COBOL ACCEPT_DATE_Y2K_TRUNCATION

ACCEPT_DATE_Y2K_TRUNCATION

L'istruzione storica 'ACCEPT ws-date FROM DATE' restituisce la data nel formato a 6 cifre 'AAMMGG' con anno a sole 2 cifre; per gestire date a 4 cifre è obbligatorio usare 'ACCEPT ws-date FROM DATE YYYYMMDD'.

Cosa significa questo errore?

L'istruzione storica 'ACCEPT ws-date FROM DATE' restituisce la data nel formato a 6 cifre 'AAMMGG' con anno a sole 2 cifre; per gestire date a 4 cifre è obbligatorio usare 'ACCEPT ws-date FROM DATE YYYYMMDD'.

Messaggio originale

Logic bug: ACCEPT FROM DATE returns 2-digit YYMMDD instead of 4-digit YYYYMMDD (Y2K bug)

Contesto e parole chiave

Alias

  • ACCEPT FROM DATE 2-digit year COBOL Y2K

Messaggi alternativi

  • ritorno data a due cifre anno YYMMDD anziché 4 cifre

Prodotti

  • GnuCOBOL (cobc) / IBM Enterprise COBOL / Micro Focus

Piattaforme

  • AIX
  • IBM z/OS
  • Linux
  • Windows

Parole chiave

  • cobol
  • cobol.procedure.accept-from-date-yyyy-mm-dd-truncation
  • errore-cobol-accept-date-y2k-truncation
  • file-status
  • gnucobol
  • Procedure Division e Runtime

Cause possibili

Causa tecnica per Errore COBOL: ACCEPT FROM DATE 2-digit year truncation (Bug Anno a Due Cifre)

L'istruzione storica 'ACCEPT ws-date FROM DATE' restituisce la data nel formato a 6 cifre 'AAMMGG' con anno a sole 2 cifre; per gestire date a 4 cifre è obbligatorio usare 'ACCEPT ws-date FROM DATE YYYYMMDD'.

molto comune

Diagnosi

Diagnostica di esecuzione e file status per Errore COBOL: ACCEPT FROM DATE 2-digit year truncation (Bug Anno a Due Cifre)

Ispezionare la variabile FILE-STATUS, i log di runtime o compilare con i controlli di integrità di GnuCOBOL (-Wall -Wextra -fdebugging-line).

Come leggere il risultato. Evidenzia violazioni dei margini di colonna, disallineamenti nelle clausole PIC o codici di ritorno anomali.

terminal
cobc -x -Wall -Wextra main.cob -o app

Risoluzione

Risoluzione standard per Errore COBOL: ACCEPT FROM DATE 2-digit year truncation (Bug Anno a Due Cifre)

Difficoltà: mediaRischio: basso

Applicare la correzione al codice sorgente COBOL secondo le specifiche ANSI/ISO COBOL.

  1. Ispezionare il valore della variabile FILE STATUS o il numero di riga del compilatore
  2. Correggere la dichiarazione FD, la PICTURE o la sequenza di OPEN/READ/WRITE
  3. Ricompilare ed eseguire verificando la corretta terminazione con RETURN-CODE 0
terminal
cobc -x main.cob

Domande frequenti

Cosa significa Errore COBOL: ACCEPT FROM DATE 2-digit year truncation (Bug Anno a Due Cifre) in COBOL?

L'istruzione storica 'ACCEPT ws-date FROM DATE' restituisce la data nel formato a 6 cifre 'AAMMGG' con anno a sole 2 cifre; per gestire date a 4 cifre è obbligatorio usare 'ACCEPT ws-date FROM DATE YYYYMMDD'.

Approfondimenti

Schede correlate