Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 10
1

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

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

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

Добавлено через 19 минут
Кто знает?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2013, 20:30
Ответы с готовыми решениями:

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

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

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

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

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

Добавлено через 17 часов 20 минут
Кто сможет написать код программы?
0
414 / 413 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
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
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
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 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
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 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
Эксперт С++
3639 / 1371 / 243
Регистрация: 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
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 15:45 12
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
никогда не замечал за ctime склонность к русскому
Тем не менее, на русской W7 VS2010 выводит.
P.S. Жалко, не знаю какую локаль надо (и можно ли) подпихнуть ideone.com чтобы скушала
0
Форумчанин
Эксперт CЭксперт С++
8157 / 5005 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
26.04.2013, 15:46 13
Зачем извращаться и писать велосипеды? Все же давно готово и на блюдечке с голубой каемочкой.
http://www.boost.org/doc/libs/... _time.html
0
go
Эксперт С++
3639 / 1371 / 243
Регистрация: 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
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
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 16:34 16

Не по теме:

Цитата Сообщение от Pasha_0057 Посмотреть сообщение
А зачем все время писать STD?
Его можно же в начале написать using namespace std;
вопрос, ставший классикой


Краткий ответ: чтобы не напороться случайно на что-то из std, задавая свои собственные имена.
0
Заблокирован
Автор FAQ
26.04.2013, 16:38 17
Цитата Сообщение от Pasha_0057 Посмотреть сообщение
он и распознает Русский
- ну попробуй как нибудь проделать это в неруссифицированной версии студии (я писал именно о русском у стандартной библиотеки ctime, которого нет а не о русском в рашинєдишн, в японской версии аналогично не будет русских дат будут японские)
Цитата Сообщение от Pasha_0057 Посмотреть сообщение
Да по Русски считают даты.
Опять же никак у тебя не добьюсь что ты подразумеваешь под словом считать даты, неужели нельзя подобрать нормальный эпитет чтобы сформулировать задание чего тебе надо?Напиши конкретно какой должен быть ввод какой вывод, тогда въеду наконец чего там такое от тебя хотят.

Не по теме:

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

Цитата Сообщение от Tulosba Посмотреть сообщение
А зачем все время писать STD?
Его можно же в начале написать using namespace std;
- прочти, поймёшь почему using namespace std не только можно но и нужно для облегчения жизни using namespace std и std:: надоело смотреть!

0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 16:44 18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ну попробуй как нибудь проделать это в неруссифицированной версии студии
Мой код проверен в английской студии, но на русской винде.
0
-=ЮрА=-
26.04.2013, 16:48
  #19

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
ой код проверен в английской студии, но на русской винде.
- а у меня видимо китайская студия и грузинская ХРюша:D
Хорошо вечером гляну в 11-й на счёт этого момента

0
Tulosba
26.04.2013, 16:51     Печать даты в различных форматах
  #20

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- а у меня видимо китайская студия и грузинская ХРюша
не знаю, у нас даже страны разные, так что не удивлюсь :)

0
26.04.2013, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 16:51
Привет! Вот еще темы с ответами:

Печать различных текстовых документов
Здравствуйте, решил написать приложение, для печати на принтере. Узнал, как просто распечатать...

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

Печать даты на документе
Ребята, не нашел на форуме. Подскажите как сделать, что бы на каждом документе печаталась дата...

Печать системной даты
Ребята, небольшой вопрос, можно как нибудь сделать, что бы при печати из 1с всегда выводил...


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

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

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