Перевод цифровых символов в формат даты - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана строка из восьми цифровых символов. переведите его в формат даты "dd - mm - yyyy" и проверьте корректность такой даты.

Решение задачи: «Перевод цифровых символов в формат даты»

textual
Листинг программы
#include<stdio.h>
#include<conio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
 
void main()
{   char bf[8];
    struct tm _tm;
    memset(&_tm,NULL, sizeof(_tm));
    cputs(" Введите дату[ddmmyyyy]:");
    gets(bf);
   _tm.tm_year = atoi(&bf[4]); bf[4] = 0;
   _tm.tm_mon  = atoi(&bf[2]); bf[2] = 0;
   _tm.tm_mday = atoi(&bf);
   printf("Получили %2d-%2d-%4d\n\r", _tm.tm_mday,_tm.tm_mon ,_tm.tm_year);
   _tm.tm_year = _tm.tm_year - 1900;
   _tm.tm_mon--;
    printf("Проверка: %s", asctime(&_tm));
    getch();
};

Объяснение кода листинга программы

В этом коде происходит следующее:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h - для работы с стандартными вводом/выводом;
    • conio.h - для работы с функцией getch(), которая используется для приостановки выполнения программы до тех пор, пока пользователь не введет данные;
    • time.h - для работы со структурой tm, используемой для представления даты и времени;
    • string.h - для работы с функцией memset(), которая используется для очистки памяти;
    • stdlib.h - для работы с функцией atoi(), которая используется для преобразования строки в целое число.
  2. Создается пустая строка размером 8 символов для хранения введенной пользователем даты.
  3. Структура tm инициализируется значением по умолчанию - в данном случае, пустой датой.
  4. Выводится приглашение для ввода даты.
  5. Пользователь вводит дату в формате ddmmyyyy.
  6. Переменные tm.tm_year, tm.tm_mon и tm.tm_mday инициализируются значениями соответствующих полей введенной даты.
  7. Выводится дата в формате dd-mm-yyyy.
  8. Для переменной tm.tm_year вычитается 1900, для tm.tm_mon - вычитается единица, для tm.tm_mday - изменений не происходит.
  9. Выводится проверка в виде строки, представляющей дату в формате ISO 8601.
  10. Программа ожидает нажатия клавиши. Обратите внимание, что ввод даты в формате ddmmyyyy может вызвать путаницу, поскольку в этом формате день, месяц и год расположены в обратном порядке по сравнению с общепринятым форматом.

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы