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

Номер недели по дате

13.01.2015, 20:55. Просмотров 2574. Ответов 5
Метки нет (Все метки)


Всем добрый день. Я только начинаю изучать c++ и передо мной стоит задача: Определить номер недели с начала года по введенной дате, считая, что первая неделя начинается 1 января. Например, 1 февраля – 5 неделя. Пожалуйста помогите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2015, 20:55
Ответы с готовыми решениями:

По текущей дате и дню недели определить день недели с такой же датой заданного года
По текущей дате и дню недели определить день недели с такой же датой заданного года. (C++ )

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели
Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня...

День недели по дате
Здравствуйте. Проблем в написании программы у меня не возникает, проблема в расчетах. К примеру,...

Определить день недели по дате
Здравствуйте,в универе дали такое задание. Сделать программу в С++ builder. "составить программу...

5
Модератор
Эксперт С++
10456 / 8710 / 5261
Регистрация: 18.12.2011
Сообщений: 23,262
13.01.2015, 21:29 2
Расчет дня недели по дате, исправьте ошибки
Определение дня недели по дате
Определение дня недели по введенной дате
Если мало, то см. ссылки внизу страницы
0
3 / 3 / 0
Регистрация: 08.01.2015
Сообщений: 20
13.01.2015, 22:51  [ТС] 3
все не то.
0
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
13.01.2015, 23:01 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <time.h>
 
int main()
{
    time_t rowTime = time(0);
    tm* ptm = localtime(&rowTime);
    ptm->tm_year = 2018 - 1900;
    std::cin >> ptm->tm_mday >> ptm->tm_mon;// ввод дня и месяца
    ptm->tm_mon -= 1;
    mktime(ptm);
    int wNum = (ptm->tm_yday + 1) / 7;
    if((ptm->tm_yday + 1) % 7) ++wNum;
    std::cout << wNum << '\n';
    return 0;
}
0
3 / 3 / 0
Регистрация: 08.01.2015
Сообщений: 20
14.01.2015, 00:18  [ТС] 5
отлично, все работает, а можно сделать подобное, но без <time.h>?, обычными математическими вычислениями.
0
Заблокирован
14.01.2015, 07:57 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
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
//----------------------------------------------------------------------------
#include <iostream>
//----------------------------------------------------------------------------
class Date
{
public:
    Date (int _day, int _month, int _year):
      day (_day), month (_month), year (_year) {}
 
    ~Date () {}
        
    static const int days [12];
    static const char weekdays [7][10];
    bool LeapYear ();
    int YearDay ();
    int WeekDay ();
 
    void SetStart (int week_day); 
 
private:
    int day, month, year, start;
};
 
const int Date::days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const char Date::weekdays[][10] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
 
bool Date::LeapYear()
{
    return year%400 == 0 || (year%100 != 0 && year%4 == 0);
}
 
//set the weekday for Jan, 1st
void Date::SetStart (int week_day)
{
    start = week_day;
}
 
int Date::YearDay ()
{
    int res = 0;
    for (int i = 0; i<month-1; i++)
        res += days[i];
    res += day;
    if (this->LeapYear() && res > 59)
        res++;
    return res;
}
 
int Date::WeekDay()
{
    return (start + this->YearDay() - 2)% 7;
}
 
 
//----------------------------------------------------------------------------
int main()
{   
    std::cout << "Enter date: day month year\n";
    int _day, _month, _year;
    std::cin >> _day >> _month >> _year;
    std::cin.sync();
 
    Date date (_day, _month, _year);
    date.SetStart (1); //1st Jan - Monday
 
    std::cout << "It is " << Date::weekdays[date.WeekDay()];
    
    std::cin.get();
    return 0;
}
//-----------------------------------------------------------------------------
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2015, 07:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Определение дня недели по дате
Помогите найти ошибку. Работает, но не корректно. Определяет не тот день. #include&lt;stdio.h&gt;...

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

Определение дня недели по дате
Помогите исправить, неправильно находит день недели. int date_day::true_day() const { ...

Определение дня недели по введенной дате
Доброго времени суток! Программу я составил, вводишь день,месяц и год, и день недели она выдаёт. Но...


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

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

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