PY | time과 calendar

Stellar·2023년 11월 1일
0

Python

목록 보기
26/36
post-custom-banner

time()

시간과 관련된 파이썬 내장 함수를 사용할 수 있다.
import time을 해줘야 함. 컴퓨터 시간은 초정밀하여 1/100만 초단위로 나온다.

✔️ time 예제.

import time

print(time.time()) #설정한 값이 없으면 1970년 1월 1일 이후부터 초를 카운터한 시간이 나온다.

=============================== RESTART: C:\Users\GIEC\Desktop\기초문법\1101\test.py ==============================
1698800555.5194712 #100만분의 1초단위로 나온다.

✔️ time 예제2. ctime()

import time

t = time.time()
print(time.ctime(t))

=============================== RESTART: C:\Users\GIEC\Desktop\기초문법\1101\test.py ==============================
Wed Nov  1 10:06:18 2023

✔️ time 예제3. localtime() 출력문에서 변수로 출력 돼 필요한 값을 확인 후 사용할 수 있다.

import time

t = time.time()
print(time.localtime(t))

=============================== RESTART: C:\Users\GIEC\Desktop\기초문법\1101\test.py ==============================
time.struct_time(tm_year=2023, tm_mon=11, tm_mday=1, tm_hour=10, tm_min=7, tm_sec=33, tm_wday=2, tm_yday=305, tm_isdst=0)

✔️ time 예제4. localtime() 활용, formating으로 가독성 올리기.

import time

now = time.localtime()
print('{}년 {}월 {}일'.format(now.tm_year, now.tm_mon, now.tm_mday))
print('{}:{}:{}'.format(now.tm_hour, now.tm_min, now.tm_sec))

=============================== RESTART: C:\Users\GIEC\Desktop\기초문법\1101\test.py ==============================
202311110:10:53

✔️ time 예제5. datetime()으로 변수길이를 줄여보자.

예제4와 결과는 같지만 time()의 변수는 짧아진다.
import datetime을 해줘야 한다.

import datetime

now = datetime.datetime.now()
print('{}년 {}월 {}일'.format(now.year, now.month, now.day))
print('{}:{}:{}'.format(now.hour, now.minute, now.second))

=============================== RESTART: C:\Users\GIEC\Desktop\기초문법\1101\test.py ==============================
202311110:10:53

✔️ time 예제6. ellapse time, 경과 시간 구하기.

import time

start = time.time()
for a in range(1000) :
    print(a)

end = time.time()
result = end - start
print(round(result, 2), '초 경과')

✔️ time 예제7-1. time.sleep(), 시간을 멈춰보자. 인터벌.

import time

print('안녕하세요.')
time.sleep(1) #1초 지체
print('오늘 밤 계획이 있나요?')
time.sleep(5) #5초 지체
print('가족들과 외식을 할 예정입니다.')

✔️ time 예제7-2. time.sleep(), 지정한 시간 만큼 쉬어주자.

>>>import time

>>>num = int(input('정수를 입력하세요 : '))

>>>for i in range(num, 0, -1) :
>>>    print(i)
>>>    time.sleep(1) #1초 동안 쉬고 다음 명령을 실행 함.
>>>print('발사!')

✔️ time 예제8. time.sleep() 2, 구구단을 천천히 보기.

import time

for dan in range(2, 10) :
    print(dan, '단')
    for hang in range(2, 10) :
        print(dan, '*', hang, '=', dan*hang)
        time.sleep(0.2)
    print()
    time.sleep(1)

calendar, 달력 출력하기.

prmonth의 pr은 print의 준말

✔️ calendar 예제. 2023년도 11월까지.

import calendar

print(calendar.calendar(2023))
print(calendar.month(2023, 11))

✔️ calendar 예제2. print() 없이 사용하기. 2023년도 11월까지.

import calendar

calendar.prcal(2023)
calendar.prmonth(2023, 11)

✔️ calendar 예제3. 시작 요일 변경하기.

import calendar

calendar.setfirstweekday(6) # 먼저 나올 요일 설정. 0은 월요일. 기본 월요일부터 나옴.
calendar.prcal(2023)
calendar.prmonth(2023, 11)

✔️ calendar 예제4. 특정 날짜의 요일 불러오기.

import calendar

yoil = ['월', '화', '수', '목', '금', '토', '일']
day = calendar.weekday(2023, 8, 15)  #인덱스로 반환하기 때문에 요일 리스트를 따로 작성 함.
birth = calendar.weekday(1997, 2, 4)
print(day)
print('광복절은, {}요일이다.'.format(yoil[day]))
print('내가 태어난 요일은, {}요일이다.'.format(yoil[birth]))

✔️ calendar 예제5.

터미널로만 사용가능

import calendar
import time
import sys

if len(sys.argv) == 1 :
    t = time.time()
    tm = time.localtime(t)
    calendar.prmonth(tm.tm_year, tm.tm_mon, w=5, l=2)
elif len(sys.argv) == 2:
    print(calendar.calendar(int(sys.argv[1])))
elif len(sys.argv) == 3:
    calendar.prmonth(int(sys.argv[1]), int(sys.argv[2]))
else:
    print('인수는 2개 이하여야 합니다.')

✔️ calendar 예제6. 지정 날짜로부터 오늘까지 며칠이 지났는지 계산. 터미널 사용

#지정 날짜로부터 오늘까지 며칠이 지났는지 계산
import sys
import time

if len(sys.argv) != 2 :
    print('시작 날짜를 yyyymmdd로 입력하십시오.')
    sys.exit(0)

birth = sys.argv[1]
if len(birth) != 8 or birth.isnumeric() == False :
    print('날짜 형식이 잘못되었습니다.')
    sys.exit(0)

tm = (int(birth[:4]), int(birth[4:6]), int(birth[6:8]), 0, 0, 0, 0, 0, 0)
ellapse = int((time.time() - time.mktime(tm)) / (24 * 60 * 60))
print(ellapse)

✔️ calendar 예제7. 지정 날짜로부터 오늘까지 며칠이 지났는지 계산2. 대화형 코드

#지정 날짜로부터 오늘까지 며칠이 지났는지 계산
import sys
import time

year = int(input('태어난 년도를 입력하세요(4자리) : '))
month = int(input('태어난 월을 입력하세요 : '))
day = int(input('태어난 일을 입력하세요 : '))

tm = (year, month, day, 0, 0, 0, 0, 0, 0)
ellapse = int((time.time() - time.mktime(tm)) / (24 * 60 * 60))
print(ellapse)
post-custom-banner

0개의 댓글