Форум программистов, компьютерный форум, киберфорум
fair7
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Программа: Календарь (позоляет узнать: день нидели или год)

Запись от fair7 размещена 01.01.2021 в 23:58
Показов 2836 Комментарии 0

Если есть желание узнать номер дня (0 - 366), когда известен год, месяц и число
или узнать, какой это месяц и число, указывая номер дня.
А так же, можно узнать повторяемость календарей.

Писал на украинском языке,
переводить не стал (не уверен, что кому то интересно).
Кликните здесь для просмотра всего текста
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
 
#define out printf
#define end printf("\n")
#define Enter 13
#define BackSpace 8
#define Space 32
 
#define Beginning_of_years -1
#define End_of_years 9999 // 2021
#define Years End_of_years-Beginning_of_years
//   ПОНЕДІЛОК, ВІВТОРОК, СЕРЕДА,   ЧЕТВЕР, П'ЯТНИЦЯ, СУБОТА, НЕДІЛЯ
enum {MONDAY=1, TUESDAY, WEDNESDAY,THURSDAY,FRIDAY, SATURDAY, SUNDAY};
 
//    Січень,   Лютий,   Березень
enum {January=1,February,March,
 
//  Квітень,Травень,Червень
    April,  May,    June,
 
//  Липень,Серпень,Вересень,
    July,  August, September,
 
//  Жовтень,Листопад,Грудень
    October,November,December};
 
enum {F1=59,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11=133,F12};
int ConversionToNumber_F1_F12(int key)
{
    if(key >= 59 && key <= 68)return key-58;
        else if(key == 133 || key == 134)return key-122;
    else return 0;
}
void PrintWeeks(int number_of_the_week)
{
    switch(number_of_the_week)
    {
        case MONDAY:    system("echo  ПОНЕДiЛОК ");break;
        case TUESDAY:   system("echo  BiBTOPOK  ");break;
        case WEDNESDAY: system("echo   CEPEДA   ");break;
        case THURSDAY:  system("echo   ЧETBEP   ");break;
        case FRIDAY:    system("echo  П'ЯTHUЦЯ  ");break;
        case SATURDAY:  system("echo   CУБOTA   ");break;
        case SUNDAY:    system("echo   HEДiЛЯ   ");break;
    }
}
#define Until_January   31         // Січень
#define Until_February  31+28      // Лютий
#define Until_March     31+28+31   // Березень
#define Until_April     31+28+31 +30       // Квітень
#define Until_May       31+28+31 +30+31    // Травень
#define Until_June      31+28+31 +30+31+30 // Червень
#define Until_July      31+28+31 +30+31+30 +31        // Липень
#define Until_August    31+28+31 +30+31+30 +31+31     // Серпень
#define Until_September 31+28+31 +30+31+30 +31+31+30  // Вересень
#define Until_October   31+28+31 +30+31+30 +31+31+30 +31      // Жовтень
#define Until_November  31+28+31 +30+31+30 +31+31+30 +31+30   // Листопад
                                                              // Грудень
int DaysOfTheMonth(int Moon)
{
    switch(Moon)
    {
        case January:   return 31;
        case February:  return 28;
        case March:     return 31;
        case April:     return 30;
        case May:       return 31;
        case June:      return 30;
        case July:      return 31;
        case August:    return 31;
        case September: return 30;
        case October:   return 31;
        case November:  return 30;
        case December:  return 31;
    }
}
int DetermineTheK_day(int Moon,int Day,int days_a_year)
{
    int extra_day = (days_a_year == 366)? 1 : 0;
    switch(Moon)
    {
        case January:   return Day;
        case February:  return Until_January  + Day;
        case March:     return Until_February + Day+extra_day;
        case April:     return Until_March    + Day+extra_day;
        case May:       return Until_April    + Day+extra_day;
        case June:      return Until_May      + Day+extra_day;
        case July:      return Until_June     + Day+extra_day;
        case August:    return Until_July     + Day+extra_day;
        case September: return Until_August   + Day+extra_day;
        case October:   return Until_September+ Day+extra_day;
        case November:  return Until_October  + Day+extra_day;
        case December:  return Until_November + Day+extra_day;
    }
}
void PrintMoon(int number_of_the_moon)
{
    switch(number_of_the_moon)
    {
        case January:   system("echo   CiЧEHЬ  ");break;
        case February:  system("echo   ЛЮTИЙ   ");break;
        case March:     system("echo  БEPEЗEHЬ ");break;
        case April:     system("echo  KBiTEHЬ  ");break;
        case May:       system("echo  TPABEHЬ  ");break;
        case June:      system("echo  ЧEPBEHЬ  ");break;
        case July:      system("echo   ЛИПEHЬ  ");break;
        case August:    system("echo  CEPПEHЬ  ");break;
        case September: system("echo  BEPECEHЬ ");break;
        case October:   system("echo  ЖOBTEHЬ  ");break;
        case November:  system("echo  ЛИCTOПAД ");break;
        case December:  system("echo  ГPУДEHЬ  ");break;
    }
}
int DetermineTheMoon(int K_day,int days_a_year)
{
    int extra_day=(days_a_year == 366)? 1 : 0;
 
    if(K_day <= Until_January)                  return January;
    else if(K_day <= Until_February + extra_day)return February;
    else if(K_day <= Until_March +    extra_day)return March;
    else if(K_day <= Until_April +    extra_day)return April;
    else if(K_day <= Until_May +      extra_day)return May;
    else if(K_day <= Until_June +     extra_day)return June;
    else if(K_day <= Until_July +     extra_day)return July;
    else if(K_day <= Until_August  +  extra_day)return August;
    else if(K_day <= Until_September +extra_day)return September;
    else if(K_day <= Until_October +  extra_day)return October;
    else if(K_day <= Until_November + extra_day)return November;
    else                                      return December;
}
int DetermineTheNumber(int K_day,int days_a_year)
{
    int extra_day=(days_a_year == 366)? 1 : 0;
 
    if(K_day <= Until_January)                  return K_day;
    else if(K_day <= Until_February + extra_day)return K_day-Until_January;
    else if(K_day <= Until_March +    extra_day)return K_day-(Until_February +extra_day);
    else if(K_day <= Until_April +    extra_day)return K_day-(Until_March +extra_day);
    else if(K_day <= Until_May +      extra_day)return K_day-(Until_April +extra_day);
    else if(K_day <= Until_June +     extra_day)return K_day-(Until_May +extra_day);
    else if(K_day <= Until_July +     extra_day)return K_day-(Until_June +extra_day);
    else if(K_day <= Until_August +   extra_day)return K_day-(Until_July +extra_day);
    else if(K_day <= Until_September +extra_day)return K_day-(Until_August +extra_day);
    else if(K_day <= Until_October +  extra_day)return K_day-(Until_September +extra_day);
    else if(K_day <= Until_November + extra_day)return K_day-(Until_October +extra_day);
    else                                        return K_day-(Until_November +extra_day);
}
char weeks[Years][367]={0};
void Week_K_day(int Week,int K_day)
{
    for (int year =- 1,No_Day = 1; ++year < Years;No_Day=1)
    {
        int days_a_year=(year%4)?365:366;
        int Moon=DetermineTheMoon(K_day,days_a_year);
        for(;No_Day <= days_a_year;++No_Day)
        {
            if(weeks[year][K_day] == Week
               &&
               DetermineTheMoon(K_day,days_a_year) == Moon
               &&
               No_Day == K_day
               )
            {
                out("\n PiK = %4i",year+Beginning_of_years+1);
                out(" %i",DetermineTheNumber(K_day,days_a_year));
            }
        }
    }
}
void Week_Moon(int Week,int Moon,int Day)
{
    for (int year = -1,No_Day = 1; ++year < Years;No_Day = 1)
    {
        int days_a_year = (year % 4)? 365 : 366;
        int K_day=DetermineTheK_day(Moon,Day,days_a_year);
        for(;No_Day <= days_a_year;++No_Day)
        {
            if(weeks[year][K_day] == Week
               &&
               DetermineTheMoon(K_day,days_a_year) == Moon
               &&
               No_Day == K_day
               )
            {
                out("\n PiK = %4i",year+Beginning_of_years+1);
            }
        }
    }
}
void Year_Moon_Day(int Year,int Moon,int Day)
{
        int days_a_year = (Year%4)? 365 : 366;
        int No_Day = DetermineTheK_day(Moon,Day,days_a_year);
        out("\n No_Day = %i",No_Day);
        out("\n Week   =");PrintWeeks(weeks[Year][No_Day]);
}
void Year_No_Day(int Year,int No_Day)
{
        int days_a_year = (Year%4)? 365 : 366;
        out("\n Week   =");PrintWeeks(weeks[Year][No_Day]);
}
int in()
{
    int key;
    char cArr[5]={0};
    for(int count=0;;)
    {
        key=getch();
        if(count<4 && 47<key && key<58)
        {
            out("%c",key);
            cArr[count++]=key;
        }
        else if(key==BackSpace && count>0)
        {
            cArr[--count]=Space;
            out("%c",BackSpace);
            out("%c",Space);
            out("%c",BackSpace);
        }
        else if(key==Enter)break;
    }
    return atoi(cArr);
}
int Choice_F1_F12(int End_F)
{
    int Number_F=13,Key;
 
    for(;!Number_F || Number_F > End_F;)
    {
        Key = getch();
        if(Key == 0 || Key == 224)Key = getch();
        Number_F = ConversionToNumber_F1_F12(Key);
    }
    return Number_F;
}
int Choice_F1_F2()
{
    int Key;
    for(;;)
    {
        Key = getch();
        if(Key == 0  || Key == 224)
        {
            Key = getch();
            if(Key == F1 || Key == F2)return Key;
        }
    }
}
int GetANumberInTheRange(int Beginning,int End,char *message)
{
    int Number;
    out("\n %s",message);
    for(;;)
    {
        Number=in();
        if(Number > Beginning && Number <= End)break;
            else    out(" BBEDiTb yKA3AHUu DiAnA3OH: %i - %i",Beginning,End),
                    out("\n %s",message);
    }
    return Number;
}
int main()
{
    unsigned long week_counter=4;
 
    for (int year=-1,K_day=1; ++year<Years; K_day=1)
    {
        int days_a_year=(year%4)? 365: 366;
        for(;K_day<=days_a_year;)
        {
            weeks[year][K_day++]=(week_counter++ %7)+1;
        }
//        out("\n B PIK == %4i",year+Beginning_of_years+1);
//        out("\t DHiB == %3i",days_a_year);
//        if(days_a_year%366)out(" ");
//            else out("_");
    }
    int  Moon = 0, Week = 0,  No_Day = 0, Year = -1;// year_week,
 
    system("echo  ПPOГPAMA ПO BИЗHAЧEHHЮ POKУ AБO ДHЯ TИЖHЯ."),end;
    system("echo  ЩО ВИБИРАЄТЕ ВВЕСТИ ?"),end;
    out(" F %i - ",1);system("echo TИЖДEHЬ");
    out(" F %i - ",2);out(" PiK\n");
    end;
    if(Choice_F1_F2() == F1)
    {
        system("echo  BИБEPiTЬ TИЖДEHЬ:"),end;
        for(int count = 1; count < 8; ++count)
        {
            out(" F %i - ",count);PrintWeeks(count);
        }
        Week = Choice_F1_F12(SUNDAY);
        out("\n Week = %i",Week); PrintWeeks(Week),end;
    }
    else
    {
        out("\n BBEDiTb yKA3AHUu DiAnA3OH: %i - %4i",Beginning_of_years+1,End_of_years);
        Year = GetANumberInTheRange(Beginning_of_years+1,End_of_years,"Year = ");end;end;
    }
    system("echo  ЩО ВИБИРАЄТЕ ВВЕСТИ ?"),end;
    out(" F 1 - "); system("echo НОМЕР ДНЯ");
    out(" F 2 - "); system("echo MiCЯЦЬ");end;
    if(Choice_F1_F2() == F2)
    {
        system("echo  BИБEPiTЬ MiCЯЦЬ:"),end;
        for(int count = 1; count < 13; ++count)
        {
            out(" F%2i - ",count); PrintMoon(count);
            if(!(count % 3))out("\n");
        }
        Moon = Choice_F1_F12(December);
        out(" Moon = %2i",Moon),PrintMoon(Moon);
 
        int Day, days_of_the_month = DaysOfTheMonth(Moon);
        out("\n BBEDiTb yKA3AHUu DiAnA3OH: 1 - %2i \n",days_of_the_month);
        Day = GetANumberInTheRange(0,days_of_the_month,"   Day = ");
        if(Year == -1)
        {
            Week_Moon(Week,Moon,Day);
            out("\n\n Week ="),PrintWeeks(Week);
            out(" Moon ="),PrintMoon(Moon);
            out(" Day  = %i",Day);
        }
        else
        {
            Year_Moon_Day(Year,Moon,Day);
        }
    }
    else
    {
        system("echo  BBEДiTЬ No_Day (HOMEP ДHЯ) BiД 1-366:");
        No_Day = GetANumberInTheRange(0,366,"No_Day = ");
        if(Year == -1)
        {
            Week_K_day(Week,No_Day);
            out("\n\n Week  ="),PrintWeeks(Week);
            out(" No_Day  =  %i",No_Day);
        }
        else
        {
            out("\n Year   = %i",Year);
            Year_No_Day(Year,No_Day);
        }
    }
    end;
    getch();
    return 0;
}

Переработал:
Например, добавил возможность узнать какой это месяц и какой примерно день, указав лишь номер дня.
Кликните здесь для просмотра всего текста
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
 
#define out printf
#define end printf("\n")
#define Enter 13
#define BackSpace 8
#define Space 32
 
#define Beginning_of_years -1
#define End_of_years  9999 // 2021 //
#define Years End_of_years-Beginning_of_years
//   ПОНЕДІЛОК, ВІВТОРОК, СЕРЕДА,   ЧЕТВЕР, П'ЯТНИЦЯ, СУБОТА, НЕДІЛЯ
enum {MONDAY=1, TUESDAY, WEDNESDAY,THURSDAY,FRIDAY, SATURDAY, SUNDAY};
 
//    Січень,   Лютий,   Березень
enum {January=1,February,March,
 
//  Квітень,Травень,Червень
    April,  May,    June,
 
//  Липень,Серпень,Вересень,
    July,  August, September,
 
//  Жовтень,Листопад,Грудень
    October,November,December};
 
enum {F1=59,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11=133,F12};
int ConversionToNumber_F1_F12(int key)
{
    if(key >= 59 && key <= 68)return key-58;
        else if(key == 133 || key == 134)return key-122;
    else return 0;
}
void PrintWeeks(int number_of_the_week)
{
    switch(number_of_the_week)
    {
        case MONDAY:    system("echo  ПОНЕДiЛОК ");break;
        case TUESDAY:   system("echo  BiBTOPOK  ");break;
        case WEDNESDAY: system("echo   CEPEДA   ");break;
        case THURSDAY:  system("echo   ЧETBEP   ");break;
        case FRIDAY:    system("echo  П'ЯTHUЦЯ  ");break;
        case SATURDAY:  system("echo   CУБOTA   ");break;
        case SUNDAY:    system("echo   HEДiЛЯ   ");break;
    }
}
#define Until_January   31         // Січень
#define Until_February  31+28      // Лютий
#define Until_March     31+28+31   // Березень
#define Until_April     31+28+31 +30       // Квітень
#define Until_May       31+28+31 +30+31    // Травень
#define Until_June      31+28+31 +30+31+30 // Червень
#define Until_July      31+28+31 +30+31+30 +31        // Липень
#define Until_August    31+28+31 +30+31+30 +31+31     // Серпень
#define Until_September 31+28+31 +30+31+30 +31+31+30  // Вересень
#define Until_October   31+28+31 +30+31+30 +31+31+30 +31      // Жовтень
#define Until_November  31+28+31 +30+31+30 +31+31+30 +31+30   // Листопад
                                                              // Грудень
int DaysOfTheMonth(int Moon)
{
    switch(Moon)
    {
        case January:   return 31;
        case February:  return 28;
        case March:     return 31;
        case April:     return 30;
        case May:       return 31;
        case June:      return 30;
        case July:      return 31;
        case August:    return 31;
        case September: return 30;
        case October:   return 31;
        case November:  return 30;
        case December:  return 31;
    }
}
int DetermineTheK_day(int Moon,int Day,int days_a_year)
{
    int extra_day = (days_a_year == 366)? 1 : 0;
    switch(Moon)
    {
        case January:   return Day;
        case February:  return Until_January  + Day;
        case March:     return Until_February + Day+extra_day;
        case April:     return Until_March    + Day+extra_day;
        case May:       return Until_April    + Day+extra_day;
        case June:      return Until_May      + Day+extra_day;
        case July:      return Until_June     + Day+extra_day;
        case August:    return Until_July     + Day+extra_day;
        case September: return Until_August   + Day+extra_day;
        case October:   return Until_September+ Day+extra_day;
        case November:  return Until_October  + Day+extra_day;
        case December:  return Until_November + Day+extra_day;
    }
}
void PrintMoon(int number_of_the_moon)
{
    switch(number_of_the_moon)
    {
        case January:   system("echo   CiЧEHЬ  ");break;
        case February:  system("echo   ЛЮTИЙ   ");break;
        case March:     system("echo  БEPEЗEHЬ ");break;
        case April:     system("echo  KBiTEHЬ  ");break;
        case May:       system("echo  TPABEHЬ  ");break;
        case June:      system("echo  ЧEPBEHЬ  ");break;
        case July:      system("echo   ЛИПEHЬ  ");break;
        case August:    system("echo  CEPПEHЬ  ");break;
        case September: system("echo  BEPECEHЬ ");break;
        case October:   system("echo  ЖOBTEHЬ  ");break;
        case November:  system("echo  ЛИCTOПAД ");break;
        case December:  system("echo  ГPУДEHЬ  ");break;
    }
}
int DetermineTheMoon(int K_day,int days_a_year)
{
    int extra_day=(days_a_year == 366)? 1 : 0;
 
    if(K_day <= Until_January)                  return January;
    else if(K_day <= Until_February + extra_day)return February;
    else if(K_day <= Until_March +    extra_day)return March;
    else if(K_day <= Until_April +    extra_day)return April;
    else if(K_day <= Until_May +      extra_day)return May;
    else if(K_day <= Until_June +     extra_day)return June;
    else if(K_day <= Until_July +     extra_day)return July;
    else if(K_day <= Until_August  +  extra_day)return August;
    else if(K_day <= Until_September +extra_day)return September;
    else if(K_day <= Until_October +  extra_day)return October;
    else if(K_day <= Until_November + extra_day)return November;
    else                                        return December;
}
int DetermineTheNumber(int K_day,int days_a_year)
{
    int extra_day=(days_a_year == 366)? 1 : 0;
 
    if(K_day <= Until_January)                  return K_day;
    else if(K_day <= Until_February + extra_day)return K_day-Until_January;
    else if(K_day <= Until_March +    extra_day)return K_day-(Until_February +extra_day);
    else if(K_day <= Until_April +    extra_day)return K_day-(Until_March +extra_day);
    else if(K_day <= Until_May +      extra_day)return K_day-(Until_April +extra_day);
    else if(K_day <= Until_June +     extra_day)return K_day-(Until_May +extra_day);
    else if(K_day <= Until_July +     extra_day)return K_day-(Until_June +extra_day);
    else if(K_day <= Until_August +   extra_day)return K_day-(Until_July +extra_day);
    else if(K_day <= Until_September +extra_day)return K_day-(Until_August +extra_day);
    else if(K_day <= Until_October +  extra_day)return K_day-(Until_September +extra_day);
    else if(K_day <= Until_November + extra_day)return K_day-(Until_October +extra_day);
    else                                        return K_day-(Until_November +extra_day);
}
char weeks[Years][367]={0};
int Week_K_day(int Week,int K_day)
{
    int Moon;
    for (int year =- 1,No_Day = 1; ++year < Years;No_Day=1)
    {
        int days_a_year=(year%4)?365:366;
        Moon=DetermineTheMoon(K_day,days_a_year);
        for(;No_Day <= days_a_year;++No_Day)
        {
            if(weeks[year][K_day] == Week
               &&
               DetermineTheMoon(K_day,days_a_year) == Moon
               &&
               No_Day == K_day
               )
            {
                out("\n PiK = %4i",year+Beginning_of_years+1);
                out(" %i",DetermineTheNumber(K_day,days_a_year));
            }
        }
    }
    return Moon;
}
int Week_Moon(int Week,int Moon,int Day)
{
    int K_day;
    for (int year = -1,No_Day = 1; ++year < Years;No_Day = 1)
    {
        int days_a_year = (year % 4)? 365 : 366;
        K_day=DetermineTheK_day(Moon,Day,days_a_year);
        for(;No_Day <= days_a_year;++No_Day)
        {
            if(weeks[year][K_day] == Week
               &&
               DetermineTheMoon(K_day,days_a_year) == Moon
               &&
               No_Day == K_day
               )
            {
                out("\n PiK = %4i",year+Beginning_of_years+1);
                out(" %i",DetermineTheNumber(K_day,days_a_year));
            }
        }
    }
    return K_day;
}
void Year_Moon_Day(int Year,int Moon,int Day)
{
        int days_a_year = (Year%4)? 365 : 366;
        int No_Day = DetermineTheK_day(Moon,Day,days_a_year);
        out("\n No_Day = %i",No_Day);
        out("\n   Week =");PrintWeeks(weeks[Year][No_Day]);
        out("    PiK = %4i",Year+Beginning_of_years+1);
        (days_a_year==366)?system("echo  BИCOKOCHИЙ"):system("echo  HE BИCOKOCHИЙ");
}
void Year_No_Day(int Year,int No_Day)
{
        out("   Week =");PrintWeeks(weeks[Year][No_Day]);
}
int in()
{
    int key;
    char cArr[5]={0};
    for(int count=0;;)
    {
        key=getch();
        if(count<4 && 47<key && key<58)
        {
            out("%c",key);
            cArr[count++]=key;
        }
        else if(key==BackSpace && count>0)
        {
            cArr[--count]=Space;
            out("%c",BackSpace);
            out("%c",Space);
            out("%c",BackSpace);
        }
        else if(key==Enter)break;
    }
    return atoi(cArr);
}
int Choice_F1_F12(int End_F)
{
    int Number_F=13,Key;
 
    for(;!Number_F || Number_F > End_F;)
    {
        Key = getch();
        if(Key == 0 || Key == 224)Key = getch();
        Number_F = ConversionToNumber_F1_F12(Key);
    }
    return Number_F;
}
int Choice_F1_F2()
{
    int Key;
    for(;;)
    {
        Key = getch();
        if(Key == 0  || Key == 224)
        {
            Key = getch();
            if(Key == F1 || Key == F2)return Key;
        }
    }
}
int GetANumberInTheRange(int Beginning,int End,char *message)
{
    int Number;
    out("\n %s",message);
    for(;;)
    {
        Number=in();
        if(Number > Beginning && Number <= End)break;
            else    out(" BBEDiTb yKA3AHUu DiAnA3OH: %i - %i",Beginning,End),
                    out("\n %s",message);
    }
    return Number;
}
int main()
{
    unsigned long week_counter=4;
 
    for (int year=-1,K_day=1; ++year<Years; K_day=1)
    {
        int days_a_year=(year%4)? 365: 366;
        for(;K_day<=days_a_year;)
        {
            weeks[year][K_day++]=(week_counter++ %7)+1;
        }
//        out("\n B PIK == %4i",year+Beginning_of_years+1);
//        out("\t DHiB == %3i",days_a_year);
//        if(days_a_year%366)out(" ");
//            else out("_");
    }
    int  Moon = 0, Week = 0,  No_Day = 0, Year = -1;// year_week,
 
    system("echo  ПPOГPAMA ПO BИЗHAЧEHHЮ POKУ AБO ДHЯ TИЖHЯ."),end;
    system("echo  ЩО ВИБИРАЄТЕ ВВЕСТИ ?"),end;
    out(" F %i - ",1);system("echo TИЖДEHЬ");
    out(" F %i - ",2);out(" PiK\n");
    end;
    if(Choice_F1_F2() == F1)
    {
        system("echo  BИБEPiTЬ TИЖДEHЬ:"),end;
        for(int count = 1; count < 8; ++count)
        {
            out(" F %i - ",count);PrintWeeks(count);
        }
        Week = Choice_F1_F12(SUNDAY);
        out("\n Week = %i",Week); PrintWeeks(Week),end;
    }
    else
    {
        out("\n BBEDiTb yKA3AHUu DiAnA3OH: %i - %4i",Beginning_of_years+1,End_of_years);
        Year = GetANumberInTheRange(Beginning_of_years+1,End_of_years,"Year = ");end;end;
    }
    system("echo  ЩО ВИБИРАЄТЕ ВВЕСТИ ?"),end;
    out(" F 1 - "); system("echo НОМЕР ДНЯ");
    out(" F 2 - "); system("echo MiCЯЦЬ");end;
    if(Choice_F1_F2() == F2)
    {
        system("echo  BИБEPiTЬ MiCЯЦЬ:"),end;
        for(int count = 1; count < 13; ++count)
        {
            out(" F%2i - ",count); PrintMoon(count);
            if(!(count % 3))out("\n");
        }
        Moon = Choice_F1_F12(December);
        out(" Moon = %2i",Moon),PrintMoon(Moon);
 
        int Day, days_of_the_month = DaysOfTheMonth(Moon);
        out("\n BBEDiTb yKA3AHUu DiAnA3OH: 1 - %2i \n",days_of_the_month);
        Day = GetANumberInTheRange(0,days_of_the_month,"   Day = ");
        if(Year == -1)
        {
            int No_Day = Week_Moon(Week,Moon,Day);
            end;system("echo  MOЖЛИBO ПРИБЛИЗНО:");
            out("    Week ="),PrintWeeks(Week);
            out("    Moon ="),PrintMoon(Moon);
            out("     Day =  %i",Day);
            out("\n  No_Day =  %i",No_Day);
        }
        else
        {
            Year_Moon_Day(Year,Moon,Day);
        }
    }
    else
    {
        system("echo  BBEДiTЬ No_Day (HOMEP ДHЯ) BiД 1-366:");
        No_Day = GetANumberInTheRange(0,366,"No_Day = ");
        if(Year == -1)
        {
            int days_a_year=366;
            int Moon = Week_K_day(Week,No_Day);
            end;system("echo  MOЖЛИBO ПРИБЛИЗНО:");
            out("   Week ="),PrintWeeks(Week);
            out("   Moon = "),PrintMoon(DetermineTheMoon(No_Day,days_a_year));
            out("    Day =  %i",DetermineTheNumber(No_Day,days_a_year));
            out("\n No_Day =  %i",No_Day);
 
        }
        else
        {
            int days_a_year=(Year%4)?365:366;
            out("\n   Moon = "),PrintMoon(DetermineTheMoon(No_Day,days_a_year));
            out("    Day = %i\n",DetermineTheNumber(No_Day,days_a_year));
            Year_No_Day(Year,No_Day);
            out("   Year = %i",Year);
            (days_a_year==366)?system("echo  BИCOKOCHИЙ"):system("echo  HE BИCOKOCHИЙ");
        }
    }
    end;
    getch();
    return 0;
}
Миниатюры
Нажмите на изображение для увеличения
Название: 1.0v BU3HA4EHHR POKy nO DHI TUJHR MICRYR I DHR.PNG
Просмотров: 2149
Размер:	4.3 Кб
ID:	6678   Нажмите на изображение для увеличения
Название: 1.2v BU3HA4EHHR POKy nO DHI TUJHR MICRYR I DHR.PNG
Просмотров: 1520
Размер:	4.1 Кб
ID:	6687  
Вложения
Тип файла: rar 1.0v BU3HA4EHHR POKy nO DHI TUJHR MICRYR I DHR.rar (8.5 Кб, 2119 просмотров)
Тип файла: rar 1.2v BU3HA4EHHR POKy nO DHI TUJHR MICRYR I DHR.rar (8.8 Кб, 1639 просмотров)
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru