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

MJD календарь

07.12.2018, 04:19. Показов 1699. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вопрос такой, почему не выводит цифры после запятой в результате?

C++ (Qt)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//#include stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    int sec, min, hour, year, month, day;
    double Mjd;
    int b,a,y,m,c;
    char Exit;
    char d;
    do
    {
 
        cout << "Input date and time (sec min hour day month year): ";
        cin >> sec
            >> min
            >> hour
            >> day
            >> month
            >> year;        
        double x = 7;
        a= ( 14 - month ) / 12;
        y= year + 4800 - a;
        m= month + 12*a - 3;
    //  cout << int((152*m+2)/5);
        Mjd= (day + int((152*m+2)/5) + 365*y + int(y/4) - 32083 + (hour-12)/24 + min/1440 + sec/86400); 
    /*  c= fmod(Mjd,7);
        if (c == 0) { d = 'Monday'; }
        if (c == 1) { d = 'Tuesday';    }
        if (c == 2) { d = 'Wednesday';  }
        if (c == 3) { d = 'Thursday';   }
        if (c == 4) { d = 'Friday'; }
        if (c == 5) { d = 'Saturday';   }
        if (c == 6) { d = 'Sunday'; }
        cout << "mjd = " << Mjd << "\nDay of the week: " << d << endl;
*/
    /*  switch(c)
        {
            case == 0:
                d = "Monday";   
            case == 1:
                d = "Tuesday";
            case == 2:
                d = "Wednesday";
            case == 3:
                d = "Thursday";
            case == 4:
                d = "Friday";
            case == 5:
                d = "Saturday";
            case == 6:
                d = "Sunday";                       
        }
        cout << "mjd = " << Mjd << "\nDay of the week: " << d << endl;
        */
        if (month <= 2) { month += 12; --year; }
        if ((10000 * year + 100 * month + day) <= 15821004)
            b = -2 + ((year + 4716) / 4) - 1179; //Julian calendar
        else b = (year / 400) - (year / 100) + (year / 4); //Gregorian calendar
    //  Mjd = 365*year - 679004 + b + int(30.6001*(month + 1)) + day + (hour-12)/24 + min/1440 + sec/86400;
    
    //  cout << "MJD = " << Mjd << endl;
        c= fmod(Mjd, x);
        c=c+2;
        if (c == 7) { c = 0 ;}
        if (c == 8) {c = 1;}
        if (c == 9) {c = 2;}
    //  cout << c;
    /*  if (c == 0) { d = *"Monday";    }
        if (c == 1) { d = *"Tuesday";   }
        if (c == 2) { d = *"Wednesday"; }
        if (c == 3) { d = *"Thursday";  }
        if (c == 4) { d = *"Friday";    }
        if (c == 5) { d = *"Saturday";  }
        if (c == 6) { d = *"Sunday";    }*/
        if (c == 0) { d = *"1"; }
        if (c == 1) { d = *"2"; }
        if (c == 2) { d = *"3"; }
        if (c == 3) { d = *"4"; }
        if (c == 4) { d = *"5"; }
        if (c == 5) { d = *"6"; }
        if (c == 6) { d = *"7"; }
        cout.setf(ios::fixed);
//      cout.setf(ios::scientific);
//      cout.setf(ios::showpoint);
//      cout.precision(5);
        cout << "MJD = " << Mjd;    
    //  for( int i = 0; i < 10; i++ )   {   cout << d[i];   };
        cout << "\nDay of the week: " << d ;
        
        cout << endl;
        cout << "\nExit? (y/n): ";
        
 
        cin >> Exit;
 
    }
    while (!(Exit == 'y' || Exit == 'Y'));
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2018, 04:19
Ответы с готовыми решениями:

Календарь в С
Задали задание написать календарь в С. Что бы вверху были дни недели написаные в строчку, а под ними писались в столбик числа от 1 до 31,...

Календарь
Дни недели пронумерованы следующим образом: 1 — понедельник, 2 — вторник, ... , 6 — суббота, 7 — воскресенье. Дано целое число K, лежащее в...

Календарь
Не могу доделать календарь, а именно просто хочу чтобы был сдвиг на необходимые дни. Изначально задание звучало так: Написать функцию...

6
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.12.2018, 12:46
Откуда им взяться, если ты всё вычисляешь с целыми типами?
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 4
07.12.2018, 12:55  [ТС]
Значение mjd ведь в типе дабл, или нужно чтобы вообще все переменные были с плавающей точкой?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.12.2018, 12:58
Лучший ответ Сообщение было отмечено TopAmiob как решение

Решение

В формуле (28) ты два раза явно к int приводишь и все константы целые. Значит в double попадёт целое число.
Если, например, min/1440 должно вычислять как вещественное, то пиши
C++
1
min / 1440.0
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 4
07.12.2018, 13:00  [ТС]
Спасибо, понял)
0
Злостный нарушитель
 Аватар для Verevkin
10359 / 5779 / 1275
Регистрация: 12.03.2015
Сообщений: 26,705
07.12.2018, 13:00
Цитата Сообщение от TopAmiob Посмотреть сообщение
Значение mjd ведь в типе дабл
В него записывается результат целочисленной операции. Строка 28, можешь убедиться.
Цитата Сообщение от TopAmiob Посмотреть сообщение
или нужно чтобы вообще все переменные были с плавающей точкой?
А чо за условие задачи? А то у меня телепатор за неуплату отключили.
1
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 4
07.12.2018, 13:07  [ТС]
Задача была написать программу которая высчитывает модифицированный юлианский календарь по датам григорианского, и выводит день недели.
Благодарю, я не учел суету с типами переменных:'��
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2018, 13:07
Помогаю со студенческими работами здесь

календарь
Даны натуральные числа А,В, С, которые обозначают число, месяц и год. Получить тройку чисел, соответствующую следующему дню. #include...

Универсальный календарь
Требуется программа &quot;универсальный календарь&quot; для расчета дня недели для заданной даты, отображения календаря на неделю, месяц и...

Восточный Календарь
Давным давно, в одной альтернативной вселенной, в восточном календаре был принят 6060-летний цикл, состоящий из 1212-летних подциклов,...

Восточный календарь
Нужна помощь,ну или кто может написать код программы,про Восточный календарь! Сам текст: В восточном календаре принят 60 летний...

Юлианский календарь
Здаров. Посмотрите пожалуйста задачу И попробуйте решить по разбору. вот что получилось у меня: #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
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. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru