Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Pasha_0057
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 10
#1

Печать даты в различных форматах - C++

23.04.2013, 20:30. Просмотров 1866. Ответов 32
Метки нет (Все метки)

Напишите программу, которая считает даты в первом формате и печатет их во втором!
07/21/55 и Июль 21, 1995

Добавлено через 19 минут
Кто знает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2013, 20:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Печать даты в различных форматах (C++):

Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в различных форматах - C++
2. Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в различных форматах, изменения даты на заданное...

Вывод символа в форматах c, d, o, x - C++
Здравствуйте. Помогите решить две задачки: 1. Написать программу, которая после введения произвольного символа, выводит его на экран в...

На основе введенной даты рождения и текущей даты сообщить пользователю, сколько он прожил дней - C++
3. Написать программу, которая на основе введенной даты рождения и текущей даты сообщает пользователю, сколько он прожил дней. Принять во...

Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты - C++
Дан файл, содержащий различные даты. Каждая дата – это число, месяц и год. Найти все весенние даты.

Что такое "эхо печать"? И как через такую печать сделать калькулятор? - C++
Само задание такое: Создать программу-калькулятор, обеспечивающую ввод с клавиатуры в режиме эхо-печати только цифр, а также...

3ds Max Сохранение в различных форматах - 3D моделирование
Скачала 3DS Max 2011 со студенческой лицезией. Думал конвертировать пару свободных моделей в *.x файлы для своего использования. В итоге...

32
Кудаив
331 / 408 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
23.04.2013, 20:35 #2
хранить в контейнере элементы парами "название месяца" - "порядковый номер месяца", ну а дальше понятно думаю
0
Pasha_0057
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 10
24.04.2013, 14:08  [ТС] #3
Цитата Сообщение от Кудаив Посмотреть сообщение
хранить в контейнере элементы парами "название месяца" - "порядковый номер месяца", ну а дальше понятно думаю
А код программы написать можете?

Добавлено через 17 часов 20 минут
Кто сможет написать код программы?
0
Кудаив
331 / 408 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
24.04.2013, 14:15 #4
с нуля за так наврядли кто то напишет, наработки пожалста или в раздел фриланс
0
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2013, 14:36 #5
Цитата Сообщение от Pasha_0057 Посмотреть сообщение
Напишите программу, которая считает даты в первом формате и печатет их во втором!
07/21/55 и Июль 21, 1995
- что значит считает даты?
Суть проста заведи 12-ть строковых литералов с названиями месяцев и когда скажем видишь 3-й месяц бери литерал март
вот немного кода чтобы было понятно
C++
1
2
char *pMONTH[] = {"jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"};
cout<<pMONTH[3 - 1]<<endl;
0
Pasha_0057
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 10
26.04.2013, 12:12  [ТС] #6
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
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
int a,b,c;  
cout<<"Введите дату:"<<endl;
char *pMONTH[] = {"","Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"};
 
    cout<<"Месяц: ";
    cin>>a;
    cout<<"День: ";
    cin>>b;
    cout<<"Год: ";
    cin>>c;
 
cout<<pMONTH[a]<<" "<<b<<" "<<"19"<<c<<endl;
 
    return 0;
}
Как сделать чтобы при вводе даты например от 1 до 20 он приписывал 20.
А при вводе от 80 до 99 он приписывал 19.
__________
Вот тут
C++
1
cout<<pMONTH[a]<<" "<<b<<" "<<"19"<<c<<endl;
он просто переписывает 19!
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 13:08 #7
А что, стандартные функции уже отменили? http://www.cplusplus.com/reference/ctime/
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.04.2013, 14:20 #8

Не по теме:

Tulosba, а они по русски месяцы печатают?


Цитата Сообщение от Pasha_0057 Посмотреть сообщение
07/21/55 и Июль 21, 1995
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 14:41 #9
-=ЮрА=-, печатают.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <ctime>
#include <iostream>
 
int main()
{
    setlocale (LC_ALL, "");
    char buf[100];
    time_t t = time(0);
    
    strftime( buf, sizeof(buf), "%B", localtime( &t ) );
    std::cout << buf << std::endl;
    system( "pause" );
}
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.04.2013, 15:08 #10
Tulosba, никогда не замечал за ctime склонность к русскому
http://codepad.org/IE18UaOy
Output: April
http://www.cplusplus.com/reference/ctime/strftime/
%B Full month name * - опять же английское отображение месяца.

Добавлено через 3 минуты

Не по теме:

Если бы автор темы дал внятный ответ что он понимает под словосочетанием

Цитата Сообщение от Pasha_0057 Посмотреть сообщение
которая считает даты
можно было что то написать, но по всей видимости в теме случай когда сам автор не знает чего такое надо

0
go
Эксперт С++
3587 / 1367 / 130
Регистрация: 16.04.2009
Сообщений: 4,527
26.04.2013, 15:43 #11
Pasha_0057, как-то так. Писал "на коленке". Должно работать. Но нет проверки на ввод не корректной даты.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
std::string month[] =  {
        "jun", "feb", "mar", "apr", "may", "jn", "jl", "aug", "sept", "oct", "nov", "dec"
    };
 
    std::string data("a 07/21/55 sadas12 324355 08/20/d00 0/20/95 08/20/95");
 
    std::smatch m;
    std::regex e("(\\d{2})/(\\d{2})/(\\d{2})");
 
    while (std::regex_search(data, m, e))
    {
        std::cout << month[std::stoi(m[0]) - 1] << " " << m[1] << " 19" << m[2] << std::endl;
        data = m.suffix().str();
    }
Добавлено через 11 минут
Цитата Сообщение от go Посмотреть сообщение
Но нет проверки на ввод не корректной даты.
Ладно. Вот так можно
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
#include <regex>
#include <string>
#include <vector>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::string month[] =  {
        "jun", "feb", "mar", "apr", "may", "jn", "jl", "aug", "sept", "oct", "nov", "dec"
    };
 
    std::string data("a 07/21/55 sadas12 13/21/55 00/21/55 13/32/55 324355 08/20/d00 0/20/95 08/20/95");
 
    std::smatch m;
    std::regex e("(0[1-9]|1[012])/(0[1-9]|1[0-9]|2[0-9]|3[01])/(\\d{2})");
 
    while (std::regex_search(data, m, e))
    {
        std::cout << month[std::stoi(m[0]) - 1] << " " << m[1] << " 19" << m[2] << std::endl;
        data = m.suffix().str();
    }
    
    return 0;
}
1
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 15:45 #12
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
никогда не замечал за ctime склонность к русскому
Тем не менее, на русской W7 VS2010 выводит.
P.S. Жалко, не знаю какую локаль надо (и можно ли) подпихнуть ideone.com чтобы скушала
0
MrGluck
Модератор
Эксперт CЭксперт С++
7773 / 4809 / 747
Регистрация: 29.11.2010
Сообщений: 13,130
26.04.2013, 15:46 #13
Зачем извращаться и писать велосипеды? Все же давно готово и на блюдечке с голубой каемочкой.
http://www.boost.org/doc/libs/1_45_0/doc/html/date_time.html
0
go
Эксперт С++
3587 / 1367 / 130
Регистрация: 16.04.2009
Сообщений: 4,527
26.04.2013, 15:50 #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
#include <regex>
#include <string>
#include <vector>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::string month[] =  {
        "jun", "feb", "mar", "apr", "may", "jn", "jl", "aug", "sept", "oct", "nov", "dec"
    };
 
    std::string data("a 07/21/55 sadas12 13/21/55 00/21/55 13/32/55 324355 08/20/d00 0/20/95 08/20/95");
 
    std::smatch m;
    std::regex e("(0[1-9]|1[012])/(0[1-9]|1[0-9]|2[0-9]|3[01])/(\\d{2})");
 
    while (std::regex_search(data, m, e))
    {
        std::cout << month[std::stoi(m[1]) - 1] << " " << m[2] << " 19" << m[3] << std::endl;
        data = m.suffix().str();
    }
    
    return 0;
}
Опять же. Нет проверки какой это год, т.е. кол-во дней в месяце. По дефолту от 1 до 31 включительно.
1
Pasha_0057
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 10
26.04.2013, 16:31  [ТС] #15
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

Tulosba, а они по русски месяцы печатают?

Да по Русски считают даты.
там же написал
C++
1
setlocale(LC_ALL, "rus");
он и распознает Русский

Добавлено через 9 минут
Цитата Сообщение от go Посмотреть сообщение
Вот так.
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
#include <regex>
#include <string>
#include <vector>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::string month[] =  {
        "jun", "feb", "mar", "apr", "may", "jn", "jl", "aug", "sept", "oct", "nov", "dec"
    };
 
    std::string data("a 07/21/55 sadas12 13/21/55 00/21/55 13/32/55 324355 08/20/d00 0/20/95 08/20/95");
 
    std::smatch m;
    std::regex e("(0[1-9]|1[012])/(0[1-9]|1[0-9]|2[0-9]|3[01])/(\\d{2})");
 
    while (std::regex_search(data, m, e))
    {
        std::cout << month[std::stoi(m[1]) - 1] << " " << m[2] << " 19" << m[3] << std::endl;
        data = m.suffix().str();
    }
    
    return 0;
}
Опять же. Нет проверки какой это год, т.е. кол-во дней в месяце. По дефолту от 1 до 31 включительно.
Дни он просто выводит число которое вводим.
Месяцы он правильно выводит.
А вот на счет года надо сделать чтобы он с 80 по 99 считал что это 1990.год
А с 1 по 20 он считал что это 2000.год
_________
А зачем все время писать STD?
Его можно же в начале написать using namespace std;
0
26.04.2013, 16:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 16:31
Привет! Вот еще темы с ответами:

Создайте дату по введенным числовым значениям (в различных форматах) - VBA
Это делается с помощью функции DateValue() или нет? Что вообще должно получится не совсем поняла

Сохранение изображения в различных форматах (jpg, png, bmp) - C#
Здравствуйте! Имеется объект класса Image. Как мне выбрать формат сохранения изображения (jpg, bmp, png, ...)? Сто раз уже это делал, а...

Печать строчки адреса на различных конвертах - C++ Builder
Здравствуйте форумчане!!! Не подскажите как сделать программу для печати адресов, на уже готовых конвертах, разных размеров. Вообще можно...

Печать даты на документе - Принтеры, МФУ
Ребята, не нашел на форуме. Подскажите как сделать, что бы на каждом документе печаталась дата печати. (документы из 1с, но все формы в 1с...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru