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

Определить день недели, выпадающий на дату t1.

11.12.2020, 00:45. Показов 2221. Ответов 5

Студворк — интернет-сервис помощи студентам
Написать программу, определяющую день недели, выпадающий на дату t1, если известно, что в
первый день нашей эры был понедельник.
Совсем нет идей что делать,а срок жмет, помогите...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2020, 00:45
Ответы с готовыми решениями:

Структура Date. Определить день недели выпадающий на заданную дату
Помогите пожалуйста составить программу в С++. Структуры. Дана структура, задающая дату вида: Struct date {int day; ...

День недели, выпадающий на дату d1, если известно, что в первый день нашей эры был понедельник
Помогите пожалуйста!! день недели, выпадающий на дату d1, если известно, что в первый день нашей эры был понедельник.

Определить день недели с датой D и M, если W - день недели первого января
даны два числа D и M, определяющие день и месяц. W - день недели 1 января. Определить день недели с датой D и M. Прощу помощи т.к вообще...

5
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
11.12.2020, 01:58
ew_kawy_ytrom,
1. подсчитываешь количество дней прошедших с нашей эры до даты t1 (с учетом высокосных годов)
2. делишь на семь, остача -> 0 - Пн, 1 - Вт и т.д.
0
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 8
11.12.2020, 02:04  [ТС]
А код сможешь сделать?.. я не знаю как сделать отсчет от начала нашей эры, да и в целом, понимаю, вроде, что делать, а сделать не могу..(

Добавлено через 1 минуту
SmallEvil, SmallEvil, А код сможешь сделать?.. я не знаю как сделать отсчет от начала нашей эры, да и в целом, понимаю, вроде, что делать, а сделать не могу..(
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
11.12.2020, 04:10
Лучший ответ Сообщение было отмечено ew_kawy_ytrom как решение

Решение

ew_kawy_ytrom, на функциях,

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
#include <iostream>
using namespace std;
 
struct Date{
    int day=0;
    int month=0;
    int year=0;
};
const int NLMonth[12]  = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
const int LMonth[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
const int* Month[2]={NLMonth, LMonth};
 
// является ли год высокосным
bool is_leap_year(int y); 
// подсчет дней полных месяцев
int days_by_monthes(int m, int y); // m -  месяц , y - год
// подсчет высокосных годов от Нашей Эры до указанного года 
int leap_years(int year);
// подсчет всех дней от Н.Э. до даты date
int calc_days(const Date & date);
 
int main()
{
    Date end{11,12,2020};
    int day = (calc_days(end) - 1) % 7;
 
    cout<<"День недели по введенной дате : ";
    switch (day)
    {
        case 0: cout<<"Пн";
           break;
        case 1: cout<<"Вт";
           break;
        case 2: cout<<"Ср";
           break;
        case 3: cout<<"Чт";
           break;
        case 4: cout<<"Пт";
           break;
        case 5: cout<<"Сб";
           break;
        case 6: cout<<"Вс";
           break;
        default: break;
    }
    return 0;
}
 
 
bool is_leap_year(int y)
{
    if ( y%400 == 0 ) return true;
    if ( y%100 == 0 ) return false;
    if ( y%4 == 0 )   return true;
    return false;
}
 
int days_by_monthes(int m, int y) // m -  месяц , y - год
{
    if (m<1 || m>12)
        throw out_of_range(to_string(m));
    int days = 0;
    bool leap = is_leap_year(y);
    for (int i=0; i<m-1; ++i)
        days+=Month[leap][i];
    return days;
}
int leap_years(int year)
{
    if (year<1)
        throw out_of_range(to_string(year));
    int years = year - 1;
    return (years / 4 - years / 100 + years / 400);
}
int calc_days(const Date & date)
{
    int l_y = leap_years(date.year);
    int nl_y = date.year - 1 - l_y;
    return date.day + days_by_monthes(date.month, date.year) + l_y*366 + nl_y*365; 
}
0
0 / 0 / 0
Регистрация: 11.12.2020
Сообщений: 8
11.12.2020, 09:05  [ТС]
SmallEvil, Жалуется - инициализация: невозможно преобразовать "initializer list" в "Date". Что делать?
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
11.12.2020, 17:21
C++
1
2
3
4
Date d1;
d1.day=11;
d1.month=12;
d1.year=2020;
или ввод пользователем

C++
1
2
3
4
5
6
7
8
Date d1;
cout<<"Введите дату  ";
cout<<endl<<"День :";
cin>>d1.day;
cout<<endl<<"День :";
cin>>d1.month;
cout<<endl<<"День :";
cin>>d1.year;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2020, 17:21
Помогаю со студенческими работами здесь

Ввести с клавиатуры число, месяц, год, день недели. Вывести на экран дату и день недели для следующего дня.
Ввести с клавиатуры число, месяц, год, день недели. Вывести на экран дату и день недели для следующего дня.

Определить дату следующего дня + день недели
Определить дату следующего дня + день недели (с использованием перечисляемого типа).

Определить дату следующего дня + квартал + день недели
Определить дату следующего дня + квартал + день недели (с использованием перечисляемого типа)

Написать программу определить дату следующего дня + день недели
.Определить дату следующего дня +день недели (с использованием перечисляемого типа).

Определить дату, название месяца, квартал, неделю года, день недели
Для заданной даты и определенного значения определить дату, название месяца, квартал, неделю года, день недели.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru