Ввести дату в формате DD.MM.YYYY и перевести в DD Month Year - C (СИ)
Формулировка задачи:
Помогите пожалуйста написать на языке Си (С++ и прочие не предлагать) написать программу, которая выводит на экран дату в формате DD.MM.YYYY и переводит в DD Mouth Year.
Например, ввести 11.11.2011 перевод в 11 Ноября 2011
Решение задачи: «Ввести дату в формате DD.MM.YYYY и перевести в DD Month Year»
textual
Листинг программы
#include<stdio.h>
#include<conio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
void main()
{ char bf[8],abuf[20];
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);
_tm.tm_year -= 1899;
_tm.tm_mon--;
strftime(abuf,sizeof(abuf),"%d %B %G",&_tm);
printf("Получилось: %s\n\r", abuf);
};
Объяснение кода листинга программы
В этом коде:
- Вводится дата в формате DD.MM.YYYY.
- Дата сохраняется в массив bf.
- Устанавливаются начальные значения для структуры tm.
- Используя функцию gets, вводится дата.
- Год YYYY сохраняется в поле tm_year, а месяц MM - в поле tm_mon.
- День DD сохраняется в поле tm_mday.
- Год YYYY уменьшается на 1899.
- Месяц MM уменьшается на 1.
- Используя функцию strftime, дата форматируется в виде DD Month YYYY и сохраняется в массив abuf.
- Выводится отформатированная дата.