Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.71
maks-mv
0 / 0 / 0
Регистрация: 12.05.2009
Сообщений: 4
#1

Вечный календарь - C++

12.05.2009, 00:18. Просмотров 3159. Ответов 6
Метки нет (Все метки)

помогите сделать програму Вечный календарь,которая при введении любой даты может определить день недели или сообщить о несуществующей дате.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
12.05.2009, 18:21     Вечный календарь #2
Можно, наверное, взять какую то произвольную дату типо 26.05.2009 - вторник.
Потом находишь разницу в днях между требуемой датой и начальной, находишь остаток от деления на 7 этой разности.
И определяешь день ( типо если получился остаток 6 добавляешь к 2 (вторник) 6, остаток от деления на 7 -> 1 это и есть искомый день=понедельник).
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
12.05.2009, 21:09     Вечный календарь #3
а также необходимо отталкиватся от данных о высокосном годе...
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
12.05.2009, 21:14     Вечный календарь #4
Ну да, при пересчете годов, месяцев, дней в единое число дней.
maks-mv
0 / 0 / 0
Регистрация: 12.05.2009
Сообщений: 4
13.05.2009, 00:58  [ТС]     Вечный календарь #5
не это же не так просто.там же нужно учитывать что не бывает например 31 числа в феврале и много остальных приколов.ужасть!
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
13.05.2009, 01:16     Вечный календарь #6
любая нормальная библиотека по работа с датами это умеет.
например, Boost.DateTime
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2009, 00:10     Вечный календарь
Еще ссылки по теме:

Календарь на год C++
C++ Непонятно почему вечный цикл
Вечный календарь C++
C++ НУжно найти ошибку из-за, которой крэшится программа. Похоже на вечный цикл

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

Или воспользуйтесь поиском по форуму:
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,169
Завершенные тесты: 1
14.05.2009, 00:10     Вечный календарь #7
Формула для этого есть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int main()
{
    const char* s[] = {
        "ÂîñêðåñåГ*ГјГҐ", "ГЏГ®Г*åäåëüГ*ГЁГЄ", "ÂòîðГ*ГЁГЄ",
        "ÑðåäГ*", "×åòâåðã", "ГЏГїГІГ*ГЁГ¶Г*", "ÑóááîòГ*"
        };
    cout << "ÄåГ*Гј, ìåñÿö, ãîä: ";
    int d, m, y;
    cin >> d >> m >> y;
    if (m > 2) m -= 2; else m += 10, y--;
    int c = y / 100;
    y %= 100;
    int w = (d + (13 * m - 1) / 5 + y + y / 4 - c * 2 + c / 4) % 7;
    if (w < 0) w += 7;
    cout << s[w];
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    cin.peek();
}
Yandex
Объявления
14.05.2009, 00:10     Вечный календарь
Ответ Создать тему
Опции темы

Текущее время: 09:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru