Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 09.10.2010
Сообщений: 13

Преобразовать дату

09.10.2010, 19:04. Показов 2553. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Гении С++, вы моя последняя надежда... Задали мне задачу по программированию. Она простая, буквально делается за 10 мин, но с С++ я не дружу, поэтому сюда и пишу... Вообще ничего не получается. Если есть время, помогите решить:
Преобразовать дату

Даны целые числа day, month, year. Проверьте возможность существования этой даты и в случае положительного результата выведите её в следующем формате:число в цифровом представлении, символьное название месяца, год так же в виде числа.

Задачу необходимо решать только с использованием оператора условий. И ещё, при выводе данных, нужно указывать не № месяца, а его название, тобиш Январь, Февраль и т.д. Мне подсказали, что нужно использовать оператор switch... И ещё нужно проверить дату на весокосность...

П.С. Заранее огромное спасибо тем, кто откликнется.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.10.2010, 19:04
Ответы с готовыми решениями:

не получается преобразовать дату(как массив типа char) в число...
Из файла считывается дата в виде символьного массива типа char,далее мне нужно преобразовать ее в числовой массив типа int. я пытаюсь...

Преобразовать Строку в Дату (char to date). Реализовать ввод данных в приложение
void SearchDate() {struct tm tm1; char d1; cout << endl << "Введите начальную дату (чч.мм.гггг): "; cin >> d1; ...

Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год»)
Преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год». Например, «10.02.10» превращается в "февраль...

8
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.10.2010, 21:14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <cstdlib>
 
int main()
{
    int day;
    int month;
    int year;
    bool valid = true;
 
    std::cout << "Enter day: ";
    std::cin >> day;
    std::cout << "Enter month: ";
    std::cin >> month;
    std::cout << "Enter year: ";
    std::cin >> year;
 
    if (month >= 1 && month <= 12)
    {
        if (day >= 1 && day <= 31)
        {
            if (!(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)))
            {
                if (month == 2 && day > 28)
                    valid = false;
            }
            else
            {
                if (month == 2 && day > 29)
                    valid = false;
            }
        }
        else
            valid = false;
    }
    else
        valid = false;
 
    if (!valid)
        std::cout << "Input error!" << std::endl;
    else
    {
        switch (month)
        {
            case 1:
                std::cout << "January ";
                break;
            case 2:
                std::cout << "February ";
                break;
            case 3:
                std::cout << "March ";
                break;
            case 4:
                std::cout << "April ";
                break;
            case 5:
                std::cout << "May ";
                break;
            case 6:
                std::cout << "June ";
                break;
            case 7:
                std::cout << "July ";
                break;
            case 8:
                std::cout << "August ";
                break;
            case 9:
                std::cout << "September ";
                break;
            case 10:
                std::cout << "October ";
                break;
            case 11:
                std::cout << "November ";
                break;
            case 12:
                std::cout << "December ";
                break;
        }
 
        std::cout << day << ", " << year << std::endl;
    }
 
    system("pause");
    return 0;
}
Добавлено через 4 минуты
В российском формате:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <cstdlib>
 
int main()
{
    int day;
    int month;
    int year;
    bool valid = true;
 
    std::cout << "Enter day: ";
    std::cin >> day;
    std::cout << "Enter month: ";
    std::cin >> month;
    std::cout << "Enter year: ";
    std::cin >> year;
 
    if (month >= 1 && month <= 12)
    {
        if (day >= 1 && day <= 31)
        {
            if (!(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)))
            {
                if (month == 2 && day > 28)
                    valid = false;
            }
            else
            {
                if (month == 2 && day > 29)
                    valid = false;
            }
        }
        else
            valid = false;
    }
    else
        valid = false;
 
    if (!valid)
        std::cout << "Input error!" << std::endl;
    else
    {
        std::cout << day << " ";
 
        switch (month)
        {
            case 1:
                std::cout << "yanvarya ";
                break;
            case 2:
                std::cout << "fevralya ";
                break;
            case 3:
                std::cout << "marta ";
                break;
            case 4:
                std::cout << "aprelya ";
                break;
            case 5:
                std::cout << "maya ";
                break;
            case 6:
                std::cout << "iyunya ";
                break;
            case 7:
                std::cout << "iyulya ";
                break;
            case 8:
                std::cout << "avgusta ";
                break;
            case 9:
                std::cout << "sentyabrya ";
                break;
            case 10:
                std::cout << "octyabrya ";
                break;
            case 11:
                std::cout << "noyabrya ";
                break;
            case 12:
                std::cout << "decabrya ";
                break;
        }
 
        std::cout << year << "g." << std::endl;
    }
 
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 09.10.2010
Сообщений: 13
10.10.2010, 11:01  [ТС]
Боже мой, я не думал что кто-нибудь откликнется так быстро!!! Спасибо тебе огромное, Silent!!! Ты меня просто спас!
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
10.10.2010, 11:34
Цитата Сообщение от silent_1991 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
switch (month)
 {
 case 1:
 std::cout << "January ";
 break;
 case 2:
 std::cout << "February ";
 break;
Лучше тут создать массив строк:

C++
1
2
3
std::vector<std::string> months = { "jan", "dec", "feb" };
// .....
std::cout << months[month - 1];
И забор такой из кейсов не придется городить.
1
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
10.10.2010, 12:20
Я пробовал использовать перечисление чтобы "забор из кейсов не городить", но у меня не получилось.
Наверно зря старался

enum Months {January = 1, February = 2, ...};
.......
switch(month)
{
case 1: case 3: case 5:........case 12:
cout << day << Months(month) << year; // здесь я хотел чтобы месяц выводился в виде строки
}
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
10.10.2010, 14:24
fasked,
Да, это верно))
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
10.10.2010, 17:01
fasked, Лучше то конечно лучше, но не таким способом. Еще не 2011 год к сожалению...
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
10.10.2010, 17:24
Lavroff, массив то можно и обычный создать, я же просто пример привел. И 2011 года ждать вовсе не обязательно, ставим gcc/MinGW и радуемся.
0
10.10.2010, 17:40

Не по теме:

fasked, Я просто придираюсь)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.10.2010, 17:40
Помогаю со студенческими работами здесь

Строки и функции пользователя. Преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год»
Помогите пожалуйста с программой . Преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год». Например,...

Преобразовать заданный текстовый файл, содержащий дату в соответствии с указанным форматом (односвязные линейные списки)
Выбрать алгоритм, составить его блок-схему и программу для решения своего варианта задания. Во всех вариантах предполагается для размещения...

Дана строка, содержащая дату в виде «dd.mm.yyyy». Определить дату через n дней
Что исправить нужно? #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; struct date { int day; int month; int...

Ввести одну дату и вывести дату следующего дня
Примеры: 1) Введите дату в программу, и она должна вывести вам дату следующего дня. (Например: input: 27.02.2015, output: 28.02.2015)

Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату
Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru