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

Определить номер дня недели для заданного номера дня года - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Speedfair
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 29
08.07.2014, 02:04     Определить номер дня недели для заданного номера дня года #1
а как это примерно будет на C++ ?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 02:04     Определить номер дня недели для заданного номера дня года
Посмотрите здесь:

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели C++
Составить программу, которая по номеру введенного дня недели вводит название дня. C++
Определить порядковый номер того дня високосного года, который имеет заданую дату и месяц C++
C++ Для к-го дня года определить день недели
Написать программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата название дня недели C++
Определить номер дня недели для K дня года C++
C++ Вводится номер месяца М и дня Д. Определить день недели с датой М и Д
C++ 1 января не високосного года-понедельник. Вводится число и месяц этого года. Вывести день недели этого дня

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
08.07.2014, 14:31     Определить номер дня недели для заданного номера дня года #2
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
#include <iostream>
 
int main()
{
    int year = 0, day = 0, week_day = 4;
    while(year < 4)
    {
        std::cout << "Type year: ";
        std::cin >> year;
    }
    while(day <= 0 || (!(year % 4) && day > 366) || (year % 4 && day > 365))
    {
        std::cout << "Type day: ";
        std::cin >> day;
    }
    
    for(int i = 4; i <= year; i++)
    {
        int days_per_year;
        if(!(i % 4)) days_per_year = 366; else days_per_year = 365;
        for(int j = 1; j <= days_per_year; j++)
        {
            week_day++;
            if(week_day > 7) week_day = 1;
            if(i == year && day == j) break;
        }
    } 
    
    switch(week_day)
    {
        case 1:
            std::cout << "Monday";
            break;
        case 2:
            std::cout << "Tuesday";
            break;
        case 3:
            std::cout << "Wednesday";
            break;
        case 4:
            std::cout << "Thursday";
            break;
        case 5:
            std::cout << "Friday";
            break;
        case 6:
            std::cout << "Saturday";
            break;
        case 7:
            std::cout << "Sunday";
            break;
    }
 
    return 0;
}
nmcf
4311 / 3732 / 1258
Регистрация: 14.04.2014
Сообщений: 14,623
08.07.2014, 14:35     Определить номер дня недели для заданного номера дня года #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Visual C++
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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    wstring days[7] = {L"воскресенье", L"понедельник", L"вторник", L"среда", L"четверг", L"пятница", L"суббота"};
 
    int year, nm, nd, day;
 
    wcin.imbue(locale("rus_rus.866"));
    wcout.imbue(locale("rus_rus.866"));
 
    wcout << L"Год и номер дня: ";
    wcin >> year >> nd;
    
    if(year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) months[1] = 29;
 
    day = 0;
    for(nm = 0; nm < 12; nm++)
    {
        day += months[nm];
        if(nd <= day) break;
    }
    day = nd - (day - months[nm]);
 
    int a = (14 - nm) / 12;
    int y = year - a;
    int m = (nm + 1) + 12 * a - 2;
    int res = (7000 + (day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
    wcout << L"Номер дня недели: " << res << L", название: " << days[res] << endl;
 
    system("pause");
    return 0;
}
Yandex
Объявления
08.07.2014, 14:35     Определить номер дня недели для заданного номера дня года
Ответ Создать тему
Опции темы

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