Форум сайта python.su
0
Romissevd
Большое Вам спаисбо за комментарии, хоть немного я научусь
Да, еще - а Вы делали специально под смещение +0300 или Ваш код универсальный, например для всего ниженаписанного будет работать
+0300
+0530
+1200
-0300
-0530
-1200
?
Просто мне хочется универсального, чтобы для любого смещения
+0300
+0530
+1200
-0300
-0530
-1200
и другие работало бы…
Офлайн
76
я же в комментах описал, что учитываю
когда определяю часы zone_hour они будут или положительными или отрицательными в зависимости от входных данных
а если зона не цельночасовая, то прибавляем еще 1800 секунд, хотя знак нужно определить правильно и для него, что я не сделал т.е. если будет -5:30 то в итоге получится -4:30. Ща откорректирую
Офлайн
76
с корректировкой
tz = strftime('%z') zone_hour = int(tz[:3])*3600 zone_minutes = int(tz[3:]) if zone_minutes > 0: if tz[0] == '+': zone_minutes = 1800 else: zone_minutes = -1800 ts = int(strftime("%s")) + zone_hour + zone_minutes pr='' if (ts%86400)<43200: pr='AM' else: pr='PM' return strftime('%H:%M:%S') + "\n" + strftime('%s') + "\n" + strftime('%l:%M') + " " + pr + " " + strftime('%z')
Отредактировано Romissevd (Июль 27, 2019 22:40:01)
Офлайн
0
Romissevd
Большое Вам спасибо.
А еще - а нельзя сделать универсально, пожалуйста, типа если не 30 минут, а 40, 45 или другое, типа
+03:30
+05:45
-03:20
-12:55
значение, чтобы параметр
zone_minutes = 1800
zone_minutes = zone_minutes берется из zone_minutes = int(tz) * 60
если zone_minutes = 30, то будет
zone_minutes = zone_minutes * 60
если zone_minutes = 45, то будет
zone_minutes = zone_minutes * 60
Отредактировано SharkyEXE (Июль 27, 2019 23:12:23)
Офлайн
76
не встречал часовые пояса с 10 и т.п. минутами, но сделай вот так
tz = strftime('%z') zone_hour = int(tz[:3])*3600 zone_minutes = int(tz[3:]) if zone_minutes > 0: zone_min_in_sec = zone_minutes*60 if tz[0] == '+': zone_min_in_sec = -zone_min_in_sec ts = int(strftime("%s")) + zone_hour + zone_min_in_sec pr='' if (ts%86400)<43200: pr='AM' else: pr='PM' return strftime('%H:%M:%S') + "\n" + strftime('%s') + "\n" + strftime('%l:%M') + " " + pr + " " + strftime('%z')
Офлайн
0
Romissevd
Да я как бы за универсальность, повторюсь, чтобы голова не болела, сколько минут в часовой зоне - 10 минут, 20, 50, 45 или другое
1) А вот здесь не ошибка
if zone_minutes > 0: zone_min_in_sec = zone_minutes*60 if tz[0] == '+': zone_min_in_sec = -zone_min_in_sec
if tz[0] == '+':
if tz[0] == '-':
Traceback (most recent call last):
File “jdoodle.py”, line 9, in <module>
ts = int(strftime(“%s”)) + zone_hour + zone_min_in_sec
NameError: name ‘zone_min_in_sec’ is not defined
Command exited with non-zero status 1
Отредактировано SharkyEXE (Июль 27, 2019 23:39:52)
Офлайн
76
Ты прав, я уже пьян и не соображаю маленький (суббота все таки)
tz = strftime('%z') zone_hour = int(tz[:3])*3600 zone_minutes = int(tz[3:]) if zone_minutes > 0: zone_minutes = zone_minutes*60 if tz[0] == '-': zone_minutes = -zone_minutes ts = int(strftime("%s")) + zone_hour + zone_minutes pr='' if (ts%86400)<43200: pr='AM' else: pr='PM' return strftime('%H:%M:%S') + "\n" + strftime('%s') + "\n" + strftime('%l:%M') + " " + pr + " " + strftime('%z')/code]
Офлайн
0
Romissevd
Здравствуйте.
Большое Вам спасибо.
Офлайн