본문 바로가기
Etc

[2021.08.13] How to subtract -10 minutes from the current time by July 1, 2021 Using Python?(infinite loop)

by injekim97 2021. 8. 13.
반응형

[2021.08.13] 인턴 +165   How to subtract -10 minutes from the current time by July 1, 2021 Using Python?(infinite loop)

 

 

 

이번 게시글은 현재 시간으로부터 무한 루프를 통하여, 2021년 7월 1일까지 10분씩 빼는 방법에 대해 알아보도록 하겠다.

 

이것을 구현하게 된 이유는 피코 홈에서 시리얼 넘버를 입력하고 fromdate와 todate를 입력해줘야 하는데

저번 게시글에선 현재시간으로 부터 계속 업데이트하여 지속적으로 db에 올리는 코드를 구현했다.

 

그렇기 때문에, 이번에는 현재시간으로 부터 -10분씩,  즉 무한루프를 사용하여, 2021년 7월 1일부터 ~ 현재시간을 -10분씩 하여 업데이트해주기 위해 구현할 것이다.

 

 

 

정확한 코드

import datetime

def before_10minute_time(current_time):
    current_time_minute10 = current_time - datetime.timedelta(minutes= 10)
    print("Subtract 10 minutes from the current time : " + str(current_time_minute10.strftime('%Y%m%d%H%M%S')))

    return current_time_minute10



if __name__ == "__main__":
    current_time = datetime.datetime.today()

    
    
    while True:
        current_time = before_10minute_time(current_time)
        if_break = current_time.strftime('%Y%m%d')   

        if "20210701" in if_break:
            break

 

 

<출력 결과>

-> 에러 없이 정상적으로 출력된 것을 볼 수 있다.

* 꼭 while,for문 안에 break를 걸어줘야 정상적으로 작동한다.

또한,  if_break = current_time.strftime('%Y%m%d')  으로 해줘야 한다.  

 

 

-----------------------------------------------------------------------------------------------------------------------------------

다른 방식의 코드(제대로 작동함)

import datetime


def before_10minute_time(current_time):
    current_time_minute10 = current_time - datetime.timedelta(minutes= 10)
    print("Subtract 10 minutes from the current time : " + current_time_minute10.strftime('%Y%m%d%H%M%S'))
    return current_time_minute10



if __name__ == "__main__":
    current_time = datetime.datetime.today()
    stop_date = datetime.date(year=2021, month=7, day=1) # 종료해주기 위해 추가함
    
    while True:
        current_time = before_10minute_time(current_time)

        #print(current_time.date())# 2021-07-01
        #print(stop_date) # 2021-07-01

        if current_time.date() == stop_date:
            break

 

 

<출력 결과>

-> 이 코드는 datetime.date(year=2021, month =7,day=1)를 이용하여, 종료 날짜를 지정해 줄 수 있다.

내가 날짜를 종료한 방식은 "20210701" 와 동일

 

 

* 그런다음에 18번 19번 주석으로 된 것을 보면

print(current_time.date())# 2021-07-01
print(stop_date) # 2021-07-01

datetime.date()로 출력을 하게 되면, 년-월-일 식으로 둘다 똑같이 나오는 것을 알 수 있다.

이것으로 if 문을 통해 같다면 break를 걸어 종료할 수 있다.

 

현재시간으로부터 계속 -10분씩 7월1일까지 출력.ipynb
0.83MB

반응형

댓글