Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 50
1

По порядковому номеру дня в году определить число и месяц

21.03.2014, 23:00. Показов 3765. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
прога на С
нужно чтобы программа по порядковому номеру дня в году определяла его число и месяц, год должны задавать с клавиатуры, и должно считываться к примеру 1 января -это понедельник значит 2 января-вторник
как это сделать?
помогите пожалуйста)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2014, 23:00
Ответы с готовыми решениями:

По заданному году и порядковому номеру дня в году определять день недели и месяц этого дня
Задачу не можем решить 3 людьми. ______________________________ Написать программу, которая бы...

По порядковому номеру дня года определить дату (число и месяц)
составить программу которая бы реализовала следующий алгоритм - по порядковому номеру дня года...

По порядковому номеру дня года определить дату, т.е. число и месяц (год не високосный)
Составить программу, которая бы реализовала следующий алгоритм: по порядковому номеру дня года...

По номеру дня в году определить число и месяц
Составить программу, которая по номеру дня в году выводит число и месяц в общепринятой форме...

10
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28045 / 15778 / 982
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
21.03.2014, 23:20 2
Цитата Сообщение от Ирина Малеша Посмотреть сообщение
как это сделать?
ручками.
Цитата Сообщение от Ирина Малеша Посмотреть сообщение
помогите пожалуйста)
ну начните сами хоть что то...
0
0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 50
21.03.2014, 23:22  [ТС] 3
вот именно я не понимаю с чего начать
0
Заблокирован
21.03.2014, 23:38 4
Первое:
Цитата Сообщение от Ирина Малеша Посмотреть сообщение
программа по порядковому номеру дня в году определяла его число и месяц
Второе:
Цитата Сообщение от Ирина Малеша Посмотреть сообщение
к примеру 1 января -это понедельник значит 2 января-вторник
А причем здесь одно к другому?
0
0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 50
21.03.2014, 23:44  [ТС] 5
если просто вводить число то как мне сказали программа не сможет выводить год месяц,число и день недели и надо как то так
0
Заблокирован
21.03.2014, 23:51 6
Сядьте, подумайте, и - хотя бы сформулируйте задачу без противоречий.
0
0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 50
21.03.2014, 23:53  [ТС] 7
Необходимо написать программу, которая бы позволяла по порядковому номеру дня в году и типу года (високосный или нет) определять день недели (понедельник, вторник и т.д.) и месяц года (январь, февраль и т.д.), на которые приходится указанный день (используйте типы данных, заданные перечислением).
0
Заблокирован
21.03.2014, 23:59 8
День недели зависит не так от типа года, как от номера года - посмотрите на календарь: какой день недели было 1 января за последние несколько лет.
1
0 / 0 / 0
Регистрация: 20.12.2013
Сообщений: 50
22.03.2014, 00:07  [ТС] 9
в этом году к примеру 1 января -среда,в том вторник далее понедельник и так далее , с каждым годом переходит на след день недели
0
Заблокирован
22.03.2014, 00:19 10
Значит, входные данные должны содержать инфу про день недели 1 января данного года.

Возможен вариант: считать 1 января любого года понедельником.)
0
Заблокирован
22.03.2014, 04:56 11
Ладно, вот решение:

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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <stdio.h>
#include <time.h> 
#include <locale.h>
 
typedef enum _EWeekday 
{   Sunday, 
    Monday, 
    Tuesday, 
    Wednesday, 
    Thursday, 
    Friday, 
    Saturday
}   EWeekday;
 
typedef enum _EMonth
{   January,
    February,
    March,
    April,
    May, 
    June, 
    July, 
    August,
    September,
    October,
    November,
    December
}   EMonth;
 
char *DayToString (EWeekday day)
{   switch (day)
    {   case Sunday:        return "воскресенье";
        case Monday:        return "понедельник";
        case Tuesday:       return "вторник";
        case Wednesday:     return "среда";
        case Thursday:      return "четверг";
        case Friday:        return "пятница";
        case Saturday:      return "суббота";
    }
}
 
char *MonthToString (EMonth month)
{   switch (month)
    {   case January:       return "января";
        case February:      return "февраля";
        case March:         return "марта";
        case April:         return "апреля";
        case May:           return "мая";
        case June:          return "июня";
        case July:          return "июля";
        case August:        return "августа";
        case September:     return "сентября";
        case October:       return "октября";
        case November:      return "ноября";
        case December:      return "декабря";
    }
}
 
int IsLeapYear (int year)
{   return (year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0);
}
 
void FindDayAndMonth (int daysFrom1January, int monthDays[], int *mday, int *month)
{   int i, sum;
 
    for (i = 0, sum = 0; i<12; i++)
    {   sum += monthDays[i];
        if (daysFrom1January <= sum)
        {   *month = i;
            *mday = daysFrom1January - sum + monthDays[i];
            return;
        }
    }
}
 
int main() 
{   setlocale(LC_CTYPE, "Russian");
    
    int monthDays[] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int monthDaysLeap[] = {31,29,31,30,31,30,31,31,30,31,30,31};
 
    time_t rawtime;
    struct tm * timeinfo;
    int year, dayFromYearStart, enterCheck = 0, leapCheck, totalDays;
    
    do
    {   printf ("Введите год Y >= 1970\n\tY = "); 
        enterCheck = scanf("%d", &year) == 1 && year >= 1970;
        fflush (stdin);
    } while (enterCheck != 1);
    
    if (!IsLeapYear (year))
    {   printf("Этот год невисокосный\n\n");
        totalDays = 365;
    }
    else
    {   printf("Этот год високосный\n\n");
        totalDays = 366;
    }
 
    enterCheck = 0;
    do
    {   printf ("Введите номер дня с начала года  1<=N<=%d\n\tN = ", totalDays); 
        enterCheck = scanf("%d", &dayFromYearStart) == 1 && dayFromYearStart >= 1 && dayFromYearStart <= totalDays;
        fflush (stdin);
    } while (enterCheck != 1);
 
    time (&rawtime);
    timeinfo = localtime (&rawtime);
    timeinfo->tm_year = year - 1900;
    
    if (!IsLeapYear (year))
        FindDayAndMonth (dayFromYearStart, monthDays, &timeinfo->tm_mday, &timeinfo->tm_mon);
    else
        FindDayAndMonth (dayFromYearStart, monthDaysLeap, &timeinfo->tm_mday, &timeinfo->tm_mon);
    
    mktime (timeinfo);
 
    printf ("\n\nЭтот день: %02d %s %d года, %s", timeinfo->tm_mday, MonthToString ((EMonth) timeinfo->tm_mon), year, DayToString((EWeekday) timeinfo->tm_wday));
 
    getchar();
    return 0;
}
Миниатюры
По порядковому номеру дня в году определить число и месяц  
0
22.03.2014, 04:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2014, 04:56
Помогаю со студенческими работами здесь

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

По номеру дня в году вывести число и месяц
Нужна программа которая по номеру дня в году выведет число и месяц в общепринятой форме (33-й день...

Программа, которая бы позволяла по заданному году и порядковому номеру дня в году определять день недели
Ребята, помогите доработать код=) день недели выводится не правильно, примерно после 50 года=(...

Вычислить число и месяц в невисокосном году по номеру дня
1. Вычислить число и месяц в невисокосном году по номеру дня. 2. Вычислить номер дня в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru