1

Тема: Поточний час в Python

Що потрібно додати у цей код, щоб він рахував у реальному часі, як привязати його до поточного часу? Зараз дає результат на початок доби.

import math
N1=int(input())
N2=int(input())
N3=float(input())
if N2==1 or N2==2:
    N_1=N1-1
    N_2=N2+12
else:
    N_1=N1
    N_2=N2
if N3>15 and N2>10 and N1>1582:
    A=N_1//100
    B=2-A+(A//4)
else:
    B=0
N_1=N1-1
N_2=N2+12
A=N_1//100
B=2-A+(A//4)     
C=math.trunc(365.25*N_1)
D=math.trunc(30.6001*(N_2+1))
E=B+C+D+N3+1720994.5
print(E)

2

Re: Поточний час в Python

Якщо потрібно.
Я ще чайник в патоні, тому прошу не бити :3

import datetime
day = datetime.datetime.today().weekday() # точний день (0 - понеділок)

houre = int(datetime.datetime.today().strftime("%H")) # години
minute = int(datetime.datetime.today().strftime("%M")) # хвилини
second = int(datetime.datetime.today().strftime("%S")) # секунди

datetime.datetime.today() # точний час  ( мілісекунди теж є )
Подякували: htoznasho1

3

Re: Поточний час в Python

"mamkin haker" написав:
import datetime
day = datetime.datetime.today().weekday() # точний день (0 - понеділок)

houre = int(datetime.datetime.today().strftime("%H")) # години
minute = int(datetime.datetime.today().strftime("%M")) # хвилини
second = int(datetime.datetime.today().strftime("%S")) # секунди

datetime.datetime.today() # точний час  ( мілісекунди теж є )

Я так зрозумів, що це просто годинник? А як зробити, щоб він запустився у моєму коді?

4

Re: Поточний час в Python

Я так зрозумів, що це просто годинник? А як зробити, щоб він запустився у моєму коді?

Що тобі потрібно зробити? щоб твій код сапускався в певний час чи щоб від кожну секунду щось рахував?

5

Re: Поточний час в Python

Скиньте умову задачі будь ласка, ато я нерозумію що вам потрібно знайти , а також що це за цифри ( 1720994.5 )

6

Re: Поточний час в Python

Що тобі потрібно зробити? щоб твій код сапускався в певний час чи щоб від кожну секунду щось рахував?

ось, все написано в коментарях

import math
import datetime

N1=int(input('year: '))
N2=int(input('mounth: '))
N3=float(input('day: '))

#час який на даний момент представлений списком ['година','хвилина','секунда']
#інтегрувати це ви можете за допомогою арифметичних дій на змінними
startTime = datetime.datetime.now().strftime("%H %M %S").split()

if N2==1 or N2==2:
    N_1=N1-1
    N_2=N2+12
else:
    N_1=N1
    N_2=N2

if N3>15 and N2>10 and N1>1582:
    A=N_1//100
    B=2-A+(A//4)
else:
    B=0

N_1=N1-1
N_2=N2+12

A=N_1//100
B=2-A+(A//4)     
C=math.trunc(365.25*N_1)
D=math.trunc(30.6001*(N_2+1))

E=B+C+D+N3+1720994.5
print(E)

#якщо потрібно то це час КОЛИ завершилась робота програми
endTime = datetime.datetime.now().strftime("%H %M %S")
print(f'Скріпт виконався у: {endTime}')
Подякували: htoznasho1

7

Re: Поточний час в Python

"mamkin haker" написав:

Скиньте умову задачі будь ласка, ато я нерозумію що вам потрібно знайти , а також що це за цифри ( 1720994.5 )

Умову можна прочитати тут: http://padaread.com/?book=27378&pg=11, стр.20. Це я з метою самоосвіти по програмуванню на пітоні.
Ваш розвязок не зовсім те, про що я питав, але все одно то цікаво, бо не знав того.
Чи можливо зробити так, щоб запустивши код один раз, відбувалося неперервне обчислення відповідно до інтервалів реального часу, посекундно наприклад?

8

Re: Поточний час в Python

htoznasho написав:
"mamkin haker" написав:

Скиньте умову задачі будь ласка, ато я нерозумію що вам потрібно знайти , а також що це за цифри ( 1720994.5 )

Умову можна прочитати тут: http://padaread.com/?book=27378, стр.20. Це я з метою самоосвіти по програмуванню на пітоні.
Ваш розвязок не зовсім те, про що я питав, але все одно то цікаво, бо не знав того.
Чи можливо зробити так, щоб запустивши код один раз, відбувалося неперервне обчислення відповідно до інтервалів реального часу, посекундно наприклад?

надіюсь так

import math
import time
import datetime

#яка зараз дата( точний час )
now = datetime.datetime.now()

def convert():
    now = datetime.datetime.now()
    #конвертація хвилин секунт та годин в дробну цілу дня
    day = now.day
    hour = now.hour
    minute = now.minute
    second = now.second
    #мілісекунде невраховую

    hour += day*24
    minute += hour*60
    second += minute*60

    #конвертую секунди в дні
    day = second / 86400 # кількість секунд в дні

    return day

while True:

    year = now.year
    mounth = now.month
    day = convert()

    if year == 1 or year == 2:
        mounth_new = mounth + 12
        year_new = year - 1
    else:
        mounth_new = mounth
        year_new = year

    if day > 15 and mounth_new > 10 and year_new > 1582:
        temp = year_new%100
        B = 2 - temp + (temp%4)
    else:
        B = 0

    C = round(365.25 * year_new, 0)
    D = round(30.6001* ( mounth_new + 1) )

    JD = B + C + D + day

    print(JD)

    time.sleep(1) #1 секунда

9

Re: Поточний час в Python

Воправлені деякі недоліки. ( неуважний я =( шо поробиш )

import time
import datetime

def convert():
    now = datetime.datetime.now()
    #конвертація хвилин секунт та годин в дробну частину дня
    day = now.day
    hour = now.hour
    minute = now.minute
    second = now.second
    #мілісекунде невраховую

    hour += day*24
    minute += hour*60
    second += minute*60

    #конвертую секунди в дні
    day = second / 86400 # кількість секунд в дні

    year = now.year
    month = now.month

    return year, month, day

while True:
    
    #отримуємо дані часу
    year, month, day = convert()

    if year == 1 or year == 2:
        mounth_new = month + 12
        year_new = year - 1
    else:
        mounth_new = month
        year_new = year

    if day > 15 and mounth_new > 10 and year_new > 1582:
        temp = year_new%100
        B = 2 - temp + (temp%4)
    else:
        B = 0

    C = round(365.25 * year_new, 0)
    D = round(30.6001* ( mounth_new + 1), 0)

    JD = B + C + D + day + 1720994.5

    print(JD)

    time.sleep(1) #1 секунда
Подякували: htoznasho1

10

Re: Поточний час в Python

Виділив в окрему тему

Подякували: "mamkin haker"1

11

Re: Поточний час в Python

"mamkin haker" написав:

Воправлені деякі недоліки. ( неуважний я =( шо поробиш )

import time
import datetime

def convert():
    now = datetime.datetime.now()
    #конвертація хвилин секунт та годин в дробну частину дня
    day = now.day
    hour = now.hour
    minute = now.minute
    second = now.second
    #мілісекунде невраховую

    hour += day*24
    minute += hour*60
    second += minute*60

    #конвертую секунди в дні
    day = second / 86400 # кількість секунд в дні

    year = now.year
    month = now.month

    return year, month, day

while True:
    
    #отримуємо дані часу
    year, month, day = convert()

    if year == 1 or year == 2:
        mounth_new = month + 12
        year_new = year - 1
    else:
        mounth_new = month
        year_new = year

    if day > 15 and mounth_new > 10 and year_new > 1582:
        temp = year_new%100
        B = 2 - temp + (temp%4)
    else:
        B = 0

    C = round(365.25 * year_new, 0)
    D = round(30.6001* ( mounth_new + 1), 0)

    JD = B + C + D + day + 1720994.5

    print(JD)

    time.sleep(1) #1 секунда

Ага, працює. Не все зрозумів, але то таке...А чи не можна ще зробити так, щоб попереднє обчислення не залишалося у памяті, щоб код виводив тільке одне значення відповідне поточному часу.

12

Re: Поточний час в Python

Ага, працює. Не все зрозумів, але то таке...А чи не можна ще зробити так, щоб попереднє обчислення не залишалося у памяті, щоб код виводив тільке одне значення відповідне поточному часу.

а воно і не залишаєтся , воно перезаписуєтся ( звісно можна но потрібно уже підключати GUI )

13

Re: Поточний час в Python

перепрошую за не достовірну інформацію, це можна зробити і в терміналі(консолі)
Але для windows та linux методи відрізняються, у вас яка операційна система?

затримка в 600 секунд стала 20 хвилинною :D

Використовуєтся функція очистки консолі :D

Варіант який підходить в обох випадках:

import time
import datetime
import sys
import os

def convert():
    now = datetime.datetime.now()
    #конвертація хвилин секунт та годин в дробну частину дня
    day = now.day
    hour = now.hour
    minute = now.minute
    second = now.second
    #мілісекунде невраховую

    hour += day*24
    minute += hour*60
    second += minute*60

    #конвертую секунди в дні
    day = second / 86400 # кількість секунд в дні

    year = now.year
    month = now.month

    return year, month, day

def reloadload_data(JD):

    if os.name =="nt":
        os.system("cls")
    else:
        os.system("clear")

    print(JD)

while True:
    
    #отримуємо дані часу
    year, month, day = convert()

    if year == 1 or year == 2:
        mounth_new = month + 12
        year_new = year - 1
    else:
        mounth_new = month
        year_new = year

    if day > 15 and mounth_new > 10 and year_new > 1582:
        temp = year_new%100
        B = 2 - temp + (temp%4)
    else:
        B = 0

    C = round(365.25 * year_new, 0)
    D = round(30.6001* ( mounth_new + 1), 0)

    JD = B + C + D + day + 1720994.5

    reloadload_data(JD)

    time.sleep(1)

14

Re: Поточний час в Python

тільки зараз помітив що там 3 трічка зайва ( import sys )
не бийте пж, всього 1.5 місяців пайтон вивчаю =(