С Новым годом! Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/37: Рейтинг темы: голосов - 37, средняя оценка - 4.86
17 / 17 / 0
Регистрация: 27.02.2010
Сообщений: 55

Стрелочные часы

06.11.2011, 15:55. Показов 7064. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изобразить на экране работающие часы со стрелочным индикатором (3 стрелки) и индикацию в окне даты и дня недели.

Прога с часами есть. Показывает такое же время как на компе, на котором запущена программа. Помогите с циферблатом, сделайте, пожалуйста, чтобы вместо точек были цифры. И нужно сделать внутри часов прямоугольное окошко, в котором будет отображаться дата (так же как и на компе во время запуска), к примеру 07/11/11 вт.

Спасибо!

Вот часы:

PureBasic
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
SCREEN 7
XS = 0: YS = 0: XM = 0: YM = 0: XCH = 0: YCH = 0
VREM$ = TIME$
Chas = VAL(MID$(VREM$, 1, 2))
IF Chas > 12 THEN Chas = Chas - 12
Min = VAL(MID$(VREM$, 4, 2))
sek = VAL(MID$(VREM$, 7, 2))
FOR I = 0 TO 360 STEP 30
X = 95 * SIN(I / 180 * 3.14)
Y = 95 * COS(I / 180 * 3.14)
PSET (150 + X, 100 - Y)
NEXT
DO
T = TIMER + 1
Z: IF T > TIMER GOTO Z
sek = sek + 1
 
IF sek > 60 THEN sek = 1: Min = Min + 1
 
IF Min > 60 THEN Chas = Chas + 1
 
IF Chas > 12 THEN Chas = 0: sek = 1: Min = 0
COLOR 0
 
LINE (150, 100)-(150 + XS, 100 - YS)
LINE (150, 100)-(150 + XM, 100 - YM)
LINE (150, 100)-(150 + XCH, 100 - YCH)
 
XS = 90 * SIN(sek * 6 / 180 * 3.14)
YS = 90 * COS(sek * 6 / 180 * 3.14)
XM = 80 * SIN(Min * 6 / 180 * 3.14)
YM = 80 * COS(Min * 6 / 180 * 3.14)
XCH = 60 * SIN((Chas * 30 + (Min \ 2)) / 180 * 3.14)
YCH = 60 * COS((Chas * 30 + (Min \ 2)) / 180 * 3.14)
 
COLOR 1
 
LINE (150, 100)-(150 + XS, 100 - YS)
COLOR 5
LINE (150, 100)-(150 + XM, 100 - YM)
COLOR 7
LINE (150, 100)-(150 + XCH, 100 - YCH)
 
LOOP WHILE INKEY$ = ""
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2011, 15:55
Ответы с готовыми решениями:

Стрелочные часы
Иногда требуется установить в проекте стрелочные часы. Предлагаю свой вариант часов Буду рад получить отзывы и ответить на вопросы. ...

Стрелочные часы.
Всем доброго время суток. Нашел в интернете код (DEV C++ WINAPI ANALOG CLOCK) программы исполнение которого запускает стрелочные часы: ...

Стрелочные часы
Всем привет! Ребята, подскажите пожалуйста (если есть, даже готовое решение готов съесть), как стоит оптимально решить задачу: На...

12
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
06.11.2011, 17:25
Люди вы обленились в конец, прикреплённый топик
https://www.cyberforum.ru/post1456521.html
Сделать окошко это один Line, вывести дату это один Print.
Давайте напрягайте хоть ту извилину, которую имеете, за вас и так уже почти всё сделано.
2
17 / 17 / 0
Регистрация: 27.02.2010
Сообщений: 55
15.11.2011, 12:46  [ТС]
У меня не получается сделать дату и день недели, помогите кто чем может... Хотя бы число и день недели. Часы-то у меня и свои есть. Я за помощью обращаюсь по поводу даты.

Добавлено через 57 минут
Мне нужно как в этой программе:

PureBasic
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
DECLARE SUB nil (x!, y!)
DECLARE SUB one (x!, y!)
DECLARE SUB two (x!, y!)
DECLARE SUB three (x!, y!)
DECLARE SUB four (x!, y!)
DECLARE SUB five (x!, y!)
DECLARE SUB six (x!, y!)
DECLARE SUB seven (x!, y!)
DECLARE SUB eight (x!, y!)
DECLARE SUB nine (x!, y!)
DECLARE FUNCTION dayofweek$ ()
 
CLS
SCREEN 12
CIRCLE (265, 215), 3
DIM a(1 TO 3)    AS STRING
 x = 200
 y = 200
 day$ = dayofweek$
DO
  LOCATE 2, 5:  PRINT "–Ёда®ўлҐ з*бл"
  a(1) = MID$(TIME$, 1, 2)
  a(2) = MID$(TIME$, 4, 2)
  a(3) = MID$(TIME$, 7, 2)
 
  LOCATE 11, 52:  PRINT day$
  LOCATE 11, 57: PRINT MID$(DATE$, 4, 2)
 
  FOR i = 1 TO 3
    FOR j = 1 TO LEN(a(i))
      SELECT CASE MID$(a(i), j, 1)
        CASE "0"
          CALL nil(x, y)
          x = x + 40
        CASE "1"
          CALL one(x, y)
          x = x + 40
        CASE "2"
          CALL two(x, y)
          x = x + 40
        CASE "3"
          CALL three(x, y)
          x = x + 40
        CASE "4"
          CALL four(x, y)
          x = x + 40
        CASE "5"
          CALL five(x, y)
          x = x + 40
        CASE "6"
          CALL six(x, y)
          x = x + 40
        CASE "7"
          CALL seven(x, y)
          x = x + 40
        CASE "8"
          CALL eight(x, y)
          x = x + 40
        CASE "9"
          CALL nine(x, y)
          x = x + 40
      END SELECT
      IF (j = 2) THEN x = x + 20
    NEXT j
  NEXT i
 
  CIRCLE (278, 215), 1
  CIRCLE (278, 230), 1
  CIRCLE (380, 215), 1
  CIRCLE (380, 230), 1
 
  x = 200
 
  SLEEP 1
  'CLS
  LINE (0, 0)-(640, 480), 0, BF
LOOP WHILE INKEY$ = ""
FUNCTION dayofweek$
DIM m, d, koldn, dw AS INTEGER
 m = 10
 koldn = 31
 d = 25
 dw = 1
 DO UNTIL ((m = VAL(MID$(DATE$, 1, 2))) AND (d = VAL(MID$(DATE$, 4, 2))))
   d = d + 1
   IF (d > koldn) THEN
     d = 1
     m = m + 1
     IF (m > 12) THEN
      m = 1
     END IF
    SELECT CASE m
       CASE 1
        koldn = 31
       CASE 2
        koldn = 28
       CASE 3
        koldn = 31
       CASE 4
        koldn = 30
       CASE 5
        koldn = 31
       CASE 6
        koldn = 30
       CASE 7
        koldn = 31
       CASE 8
        koldn = 31
       CASE 9
        koldn = 30
       CASE 10
        koldn = 31
       CASE 11
        koldn = 30
       CASE 12
        koldn = 31
    END SELECT
   END IF
   dw = dw + 1
   IF (dw > 7) THEN dw = 1
 LOOP
SELECT CASE dw
 CASE 1
   dayofweek$ = " ЏЌ"
 CASE 2
   dayofweek$ = " ‚’"
 CASE 3
   dayofweek$ = " ‘ђ"
 CASE 4
   dayofweek$ = " —’"
 CASE 5
   dayofweek$ = " Џ’"
 CASE 6
   dayofweek$ = " ‘Ѓ"
 CASE 7
   dayofweek$ = " ‚‘"
 CASE ELSE
 dayofweek$ = "err"
END SELECT
END FUNCTION
 
SUB eight (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 40)
 LINE -(x, y + 40)
 LINE -(x, y)
 PSET (x, y + 20)
 LINE -(x + 20, y + 20)
END SUB
 
SUB five (x, y)
  PSET (x + 20, y)
  LINE -(x, y)
  LINE -(x, y + 20)
  LINE -(x + 20, y + 20)
  LINE -(x + 20, y + 40)
  LINE -(x, y + 40)
END SUB
 
SUB four (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x, y + 20)
 LINE -(x + 20, y + 20)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 40)
END SUB
 
SUB nil (x, y)
  SCREEN 12
  PSET (x, y)
  LINE -(x + 20, y)
  LINE -(x + 20, y + 40)
  LINE -(x, y + 40)
  LINE -(x, y)
END SUB
 
SUB nine (x, y)
 SCREEN 12
 PSET (x + 20, y + 20)
 LINE -(x, y + 20)
 LINE -(x, y)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 20)
 LINE -(x, y + 40)
END SUB
 
SUB one (x, y)
 SCREEN 12
 PSET (x, y + 20)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 40)
END SUB
 
SUB seven (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 10)
 LINE -(x, y + 40)
END SUB
 
SUB six (x, y)
 SCREEN 12
 PSET (x + 20, y)
 LINE -(x, y + 20)
 LINE -(x, y + 40)
 LINE -(x + 20, y + 40)
 LINE -(x + 20, y + 20)
 LINE -(x, y + 20)
END SUB
 
SUB three (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x + 20, y)
 LINE -(x, y + 20)
 LINE -(x + 20, y + 20)
 LINE -(x, y + 40)
END SUB
 
SUB two (x, y)
  SCREEN 12
  PSET (x, y)
  LINE -(x + 20, y)
  LINE -(x + 20, y + 20)
  LINE -(x, y + 40)
  LINE -(x + 20, y + 40)
END SUB
Добавлено через 14 секунд
Мне нужно как в этой программе:

PureBasic
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
DECLARE SUB nil (x!, y!)
DECLARE SUB one (x!, y!)
DECLARE SUB two (x!, y!)
DECLARE SUB three (x!, y!)
DECLARE SUB four (x!, y!)
DECLARE SUB five (x!, y!)
DECLARE SUB six (x!, y!)
DECLARE SUB seven (x!, y!)
DECLARE SUB eight (x!, y!)
DECLARE SUB nine (x!, y!)
DECLARE FUNCTION dayofweek$ ()
 
CLS
SCREEN 12
CIRCLE (265, 215), 3
DIM a(1 TO 3)    AS STRING
 x = 200
 y = 200
 day$ = dayofweek$
DO
  LOCATE 2, 5:  PRINT "–Ёда®ўлҐ з*бл"
  a(1) = MID$(TIME$, 1, 2)
  a(2) = MID$(TIME$, 4, 2)
  a(3) = MID$(TIME$, 7, 2)
 
  LOCATE 11, 52:  PRINT day$
  LOCATE 11, 57: PRINT MID$(DATE$, 4, 2)
 
  FOR i = 1 TO 3
    FOR j = 1 TO LEN(a(i))
      SELECT CASE MID$(a(i), j, 1)
        CASE "0"
          CALL nil(x, y)
          x = x + 40
        CASE "1"
          CALL one(x, y)
          x = x + 40
        CASE "2"
          CALL two(x, y)
          x = x + 40
        CASE "3"
          CALL three(x, y)
          x = x + 40
        CASE "4"
          CALL four(x, y)
          x = x + 40
        CASE "5"
          CALL five(x, y)
          x = x + 40
        CASE "6"
          CALL six(x, y)
          x = x + 40
        CASE "7"
          CALL seven(x, y)
          x = x + 40
        CASE "8"
          CALL eight(x, y)
          x = x + 40
        CASE "9"
          CALL nine(x, y)
          x = x + 40
      END SELECT
      IF (j = 2) THEN x = x + 20
    NEXT j
  NEXT i
 
  CIRCLE (278, 215), 1
  CIRCLE (278, 230), 1
  CIRCLE (380, 215), 1
  CIRCLE (380, 230), 1
 
  x = 200
 
  SLEEP 1
  'CLS
  LINE (0, 0)-(640, 480), 0, BF
LOOP WHILE INKEY$ = ""
FUNCTION dayofweek$
DIM m, d, koldn, dw AS INTEGER
 m = 10
 koldn = 31
 d = 25
 dw = 1
 DO UNTIL ((m = VAL(MID$(DATE$, 1, 2))) AND (d = VAL(MID$(DATE$, 4, 2))))
   d = d + 1
   IF (d > koldn) THEN
     d = 1
     m = m + 1
     IF (m > 12) THEN
      m = 1
     END IF
    SELECT CASE m
       CASE 1
        koldn = 31
       CASE 2
        koldn = 28
       CASE 3
        koldn = 31
       CASE 4
        koldn = 30
       CASE 5
        koldn = 31
       CASE 6
        koldn = 30
       CASE 7
        koldn = 31
       CASE 8
        koldn = 31
       CASE 9
        koldn = 30
       CASE 10
        koldn = 31
       CASE 11
        koldn = 30
       CASE 12
        koldn = 31
    END SELECT
   END IF
   dw = dw + 1
   IF (dw > 7) THEN dw = 1
 LOOP
SELECT CASE dw
 CASE 1
   dayofweek$ = " ЏЌ"
 CASE 2
   dayofweek$ = " ‚’"
 CASE 3
   dayofweek$ = " ‘ђ"
 CASE 4
   dayofweek$ = " —’"
 CASE 5
   dayofweek$ = " Џ’"
 CASE 6
   dayofweek$ = " ‘Ѓ"
 CASE 7
   dayofweek$ = " ‚‘"
 CASE ELSE
 dayofweek$ = "err"
END SELECT
END FUNCTION
 
SUB eight (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 40)
 LINE -(x, y + 40)
 LINE -(x, y)
 PSET (x, y + 20)
 LINE -(x + 20, y + 20)
END SUB
 
SUB five (x, y)
  PSET (x + 20, y)
  LINE -(x, y)
  LINE -(x, y + 20)
  LINE -(x + 20, y + 20)
  LINE -(x + 20, y + 40)
  LINE -(x, y + 40)
END SUB
 
SUB four (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x, y + 20)
 LINE -(x + 20, y + 20)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 40)
END SUB
 
SUB nil (x, y)
  SCREEN 12
  PSET (x, y)
  LINE -(x + 20, y)
  LINE -(x + 20, y + 40)
  LINE -(x, y + 40)
  LINE -(x, y)
END SUB
 
SUB nine (x, y)
 SCREEN 12
 PSET (x + 20, y + 20)
 LINE -(x, y + 20)
 LINE -(x, y)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 20)
 LINE -(x, y + 40)
END SUB
 
SUB one (x, y)
 SCREEN 12
 PSET (x, y + 20)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 40)
END SUB
 
SUB seven (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x + 20, y)
 LINE -(x + 20, y + 10)
 LINE -(x, y + 40)
END SUB
 
SUB six (x, y)
 SCREEN 12
 PSET (x + 20, y)
 LINE -(x, y + 20)
 LINE -(x, y + 40)
 LINE -(x + 20, y + 40)
 LINE -(x + 20, y + 20)
 LINE -(x, y + 20)
END SUB
 
SUB three (x, y)
 SCREEN 12
 PSET (x, y)
 LINE -(x + 20, y)
 LINE -(x, y + 20)
 LINE -(x + 20, y + 20)
 LINE -(x, y + 40)
END SUB
 
SUB two (x, y)
  SCREEN 12
  PSET (x, y)
  LINE -(x + 20, y)
  LINE -(x + 20, y + 20)
  LINE -(x, y + 40)
  LINE -(x + 20, y + 40)
END SUB
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
16.11.2011, 05:42
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Я вам написал прогу, которая верно определяет день недели по григорианскому календарю
пришлось почитать в википедии, что это за муйня).
Работает для всех значений года:
PureBasic
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
Dt: DATA 31,28,31,30,31,30
DATA 31,31,30,31,30,31
 
DEF FnDayOfWeek$ (Day%, Month%, Year&)
 
DayPast& = 365 * Year& + ((Year& + 3) \ 4 - ((Year& \ 100) - (Year& \ 400)))
RESTORE Dt
FOR M% = 1 TO Month% - 1
  READ Plus&
  DayPast& = DayPast& + Plus&
NEXT
DayPast& = DayPast& + Day% - 3
IF DayPast& < 0 THEN
  DayPast& = 6 - (ABS(DayPast& + 1) MOD 7)
ELSE : DayPast& = DayPast& MOD 7
END IF
  SELECT CASE DayPast&
     CASE 0: N$ = "Ponedelnik"
     CASE 1: N$ = "Vtornik"
     CASE 2: N$ = "Sreda"
     CASE 3: N$ = "Chetverg"
     CASE 4: N$ = "Pyatnica"
     CASE 5: N$ = "Subbota"
     CASE 6: N$ = "Voskresenie"
  END SELECT
  FnDayOfWeek$ = N$
END DEF
 
CLS
 
  Chis% = VAL(MID$(DATE$, 4, 2))
  Mesac% = VAL(LEFT$(DATE$, 2))
  God& = VAL(RIGHT$(DATE$, 4))
 
PRINT "Seychas : "; FnDayOfWeek$(Chis%, Mesac%, God&)
 
PRINT "31 decabrya -1 goda : ";
PRINT FnDayOfWeek$(31, 12, -1)
PRINT "1 yanvara 0 goda : ";
PRINT FnDayOfWeek$(1, 1, 0)
Описание : функция FnDayOfWeek$(число, месяц, год)
  • число(тип INTEGER) пределы (1 ... 31)
  • месяц(тип INTEGER) пределы (1 ... 12)
  • год(тип LONG) вычисленные пределы (-5879610 ... 5879610)
1
17 / 17 / 0
Регистрация: 27.02.2010
Сообщений: 55
18.11.2011, 17:20  [ТС]
Вы издеваетесь чтоли? ((( Я вам две проги подогнал, которые работают абсолютно правильно! Мне нужно из двух сделать одну - стрелочные часы с календарем! У меня не получается выцепить код календаря из цифровых часов и вставить его в стрелочные. Выдает ошибку. То этого не хватает, то это лишнее. Именно поэтому обратился сюда. Помогите сделать (((((

Добавлено через 2 минуты
Вы тока зря время потратили на прочтение вики...
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
18.11.2011, 19:32
Цитата Сообщение от Ёжик-программёр Посмотреть сообщение
Вы тока зря время потратили на прочтение вики
из-за криво поставленных задач тратится время, нервы и много чего еще.

А потом еще оказывается, что те, кто искал инфо и писал код, еще и издевается.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
19.11.2011, 11:05
У меня не получается выцепить код календаря из цифровых часов и вставить его в стрелочные.
Мда тяжёлый случай...
Сделать окошко это один Line, вывести дату это один Print.
1
17 / 17 / 0
Регистрация: 27.02.2010
Сообщений: 55
20.11.2011, 14:26  [ТС]
Ну не могу я ее сделать. Сделал бы, сюда бы больше не обращался. Помогите, кто чем может......
P.S.: и задача была нормально поставлена. Все подробно написано, что, зачем и почему!!!
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
20.11.2011, 16:17
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ёжик-программёр, да ты не сердись, тут просто ленивых не котируют, стараемся помочь, научить хоть чему-то, а всё бестолку, на держи свои часики, перепсал, те были слишком паршивые.

Фишка была в чём, ты пытался выдрать из программы код, во-первых прога написана бездарно, она слишком растянутая и найти там что-то большая проблема(не мне, тебе), поэтому я тебе переписал основную функцию, переписал так, чтобы её не пришлось выдирать откуда то, тебе оставалось только взять и вставить её в любые часы, но к сожалению даже такую простейшую задачу ты не смог сделать сам, а взаместо этого вылил на меня кучу недовольств.
PureBasic
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
DECLARE FUNCTION DayOfWeek$ (Day%, Month%, Year&)
CONST u = (2 * 3.14159265358#) / 60
  DECLARE SUB FLIP ()
  DECLARE SUB Strel (N, r)
  DECLARE FUNCTION DayOfWeek$ (Day%, Month%, Year&)
 
DIM SHARED Act%, Viz%, Day$
 
'  Экран
Act% = 1: Viz% = 0
SCREEN 9, , Act%, Viz%
 
Chis% = VAL(MID$(DATE$, 4, 2))
Mesac% = VAL(LEFT$(DATE$, 2))
God& = VAL(RIGHT$(DATE$, 4))
Day$ = DayOfWeek$(Chis%, Mesac%, God&)
 
'  Палитра
 PALETTE 1, 8: PALETTE 2, 31: PALETTE 3, 0
 PALETTE 11, 38: PALETTE 0, 17: PALETTE 7, 14
 
WHILE INKEY$ = ""
CLS 2
                           ' Время и день недели
   LOCATE 17, 37: PRINT TIME$
   COLOR 11: LOCATE 18, 39: PRINT Day$
   LINE (285, 223)-(354, 252), 1, B
                           ' Контур часов
   CIRCLE (320, 175), 125, 1, , , .85
   CIRCLE (320, 175), 135, 1, , , .85
   PAINT (320 - 130, 175), 7, 1
  
   Tm = INT(TIMER)         ' Значения стрелок
   Ch = (Tm \ 3600) * 5
   Mn = (Tm \ 60) MOD 60
   Sk = Tm MOD 60 + TIMER - Tm + .4
 
     Strel Ch, 80          ' Стрелки
     Strel Mn, 100
     Strel Sk, 115
 
  FOR i = 5 TO 60 STEP 5   ' Засечки
    LINE (320 + SIN(i * u) * 122, 175 - COS(i * u) * 105)-(320 + SIN(i * u) * 138, 175 - COS(i * u) * 117), 2
  NEXT
 
 FLIP
WEND
 
Dt: DATA 31,28,31,30,31,30
DATA 31,31,30,31,30,31
 
FUNCTION DayOfWeek$ (Day%, Month%, Year&)
DayPast& = 365 * Year& + ((Year& + 3) \ 4 - ((Year& \ 100) - (Year& \ 400)))
   RESTORE Dt
FOR M% = 1 TO Month% - 1
  READ Plus&
  DayPast& = DayPast& + Plus&
NEXT
  DayPast& = DayPast& + Day% - 3
IF DayPast& < 0 THEN
  DayPast& = 6 - (ABS(DayPast& + 1) MOD 7)
ELSE : DayPast& = DayPast& MOD 7
END IF
  SELECT CASE DayPast&
     CASE 0: N$ = "Pond"
     CASE 1: N$ = "Vtrn"
     CASE 2: N$ = "Srda"
     CASE 3: N$ = "Chtv"
     CASE 4: N$ = "Pytn"
     CASE 5: N$ = "Sbbt"
     CASE 6: N$ = "Vskr"
  END SELECT
  DayOfWeek$ = N$
END FUNCTION
 
SUB FLIP
  SWAP Act%, Viz%
    SCREEN , , , Viz%
    WAIT &H3DA, 8
    SCREEN , , Act%, Viz%
END SUB
 
SUB Strel (N, r)
  LINE (321, 175)-(321 + SIN(N * u) * r, 175 - COS(N * u) * r * .85), 1
  LINE (319, 175)-(319 + SIN(N * u) * r, 175 - COS(N * u) * r * .85), 1
  LINE (320, 174)-(320 + SIN(N * u) * r, 174 - COS(N * u) * r * .85), 1
  LINE (320, 176)-(320 + SIN(N * u) * r, 176 - COS(N * u) * r * .85), 1
  LINE (320, 175)-(320 + SIN(N * u) * r, 175 - COS(N * u) * r * .85), 14
END SUB
1
17 / 17 / 0
Регистрация: 27.02.2010
Сообщений: 55
21.11.2011, 07:22  [ТС]
Огромное спасибо за помощь!!!!!!!!!
0
17 / 17 / 0
Регистрация: 27.02.2010
Сообщений: 55
22.11.2011, 11:36  [ТС]
А почему у меня в прямоугольном окошке дата не показывается?
0
17 / 17 / 0
Регистрация: 27.02.2010
Сообщений: 55
22.11.2011, 11:43  [ТС]
И, кстати, ваш календарь выводил правильный день недели, но не правильную дату (((
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
22.11.2011, 13:39
почему у меня в прямоугольном окошке дата не показывается?
Потому что там время показывается, а чтобы дата была в 25 строчке поставьте DATE$ взаместо TIME$.
Ну и прямоугольник тогда настраивать придётся, я этим заниматься не буду.

Добавлено через 41 секунду
но не правильную дату
Он дату вообще не выводил.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2011, 13:39
Помогаю со студенческими работами здесь

Стрелочные часы
Разработать приложение, отображающее движение часовой, минутной и секундной стрелок часов. Циферблат в виде окружности снабжен метками...

Стрелочные часы в Delphi
Помогите пожалуйста написать программку на Delphi, реализующую стрелочные часы.ЖДУ ВАШИХ ПРЕДЛОЖЕНИЙ,либо здесь в л/с,или по конкретным...

Нарисовать стрелочные часы
Всем привет. Пишет вам студент второго курса колледжа, поэтому код - говно. Есть одна программа на PascalABC, которая работает как якобы...

Стрелочные часы 3D c будильником
Поскольку мои расчеты гравитационных и электрических полей никого не интересуют, в свободное от безделья время пытаюсь программировать...

Изобразить стрелочные часы
часы Помогите пожалуйста! На экране ровномерно распределены цифры от 1 до 12(часов) с центра экрана на цифры по очереди указывает...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru