블로그는 나의 힘!
[ Programing ]/Lua Scirpt2022. 4. 11. 14:47

[lua] Time Function
: 루아에서는 시스템 OS 시간 관련 정보를 취득할 수 있는 함수 3가지가 있다.


# 요약 

os.date() 시스템의 날짜와 시간을 알 수 있는 함수.
os.time() UTC+0, 1970년 1월 1일 기준으로 경과한 시간을 알 수 있는 함수.
os.clock() 프로그램이 첫 실행후 경과한 시간을 알 수 있는 함수.





-- 초기화 기준 시간 세팅.
local deadLineHour = 13    -- 오후 1시 기준으로 초기화 하겠다.
local deadLineSec = deadLineHour * 60 * 60

-- 현재 시간.
local defaultSec = os.time()

-- 현재 시스템의 날짜와 시간을 스트링 형태의 값을 출력.
local date = os.date()

-- 설정한 시간(timestamp 초)을 Date 타입으로 변경.
local nowDate = os.date( "*t", defaultSec - deadLineSec)     -- deadLine 미초과 시 다음 날짜 미갱신

-- 설정한 Date를 Time (timestamp(초 1Day = 60*60*24)) 타입으로 추출.
local nowTimeAt = os.time{
                               year = nowDate.year,
                               month = nowDate.month,
                               day = nowDate.day,
                               hour = nowDate.hour,
                               min = nowDate.min,
                               sec = nowDate.sec
                           }

print( nowTimeAt )
/* 출력 : 1704266112 */



-- 인수에 스트링 '*t' 를 입력해 줌으로 년, 월, 일, 시, 분, 초, 요일, 섬머 타임 여부 등을 

-- Key를 가지는 딕셔너리 형태의 테이블로 반환 받을수 있다.
local dateTable = os.date( '*t' )

for key, value in pair(dateTable) do
     print( key, value )
end
/* 출력 :
      year 2021
      month 4
      day 16
      hour 17
      min 35
      sec 13
      yday 106
      wday 6
      isdst true
*/

print( dateTable.year, dateTable.month, dateTable.day )
-- 출력 : 2021, 4, 16

print( dateTable.hour, dateTable.min, dateTable.sec )
-- 출력 : 17, 35, 13



/*
그 외 인수 : 

%a abbreviated weekday name (e.g., Wed)
%A full weekday name (e.g., Wednesday)
%b abbreviated month name (e.g., Sep)
%B full month name (e.g., September)
%c date and time (e.g., 09/16/98 23:48:10)
%d day of the month (16) [01-31]
%H hour, using a 24-hour clock (23) [00-23]
%I hour, using a 12-hour clock (11) [01-12]
%M minute (48) [00-59]
%m month (09) [01-12]
%p either "am" or "pm" (pm)
%S second (10) [00-61]
%w weekday (3) [0-6 = Sunday-Saturday]
%x date (e.g., 09/16/98)
%X time (e.g., 23:48:10)
%Y full year (1998)
%y two-digit year (98) [00-99]
%% the character `%´

*/

-- 원하는 날짜 데이터를 문자열과 같이 반환
print( os.date('오늘은 %a요일, %b월 %d일 입니다.') )
-- 출력 : '오늘은 토요일, 3월 26일 입니다.'

-- 년 월 일
date = os.date( '%x' )
print( date )
-- 출력 : 2022-03-26

-- 년 월 일 시 분 초
date = os.date( "%Y%m%d%H%M%S", os.time() )
print( date )
-- 출력 : 20220326143000

-- 시간
time = os.date( '%X' )
print( time )
-- 출력 : 17:29:31

-- 요일 (0:일, 1:월, 2:화, 3:수, 4:목, 5:금, 6:토)
weekday = os.date( '%w' )
print( weekday )
-- 출력 : 6




출처 : [lua] 날짜와 시간 함수 os.date() (tistory.com)

 

[lua] 날짜와 시간 함수 os.date()

[lua] Time Function 루아에서는 시스템OS 시간 관련 정보를 취득할수있는 함수가 크게 3가지가 있습니다. 시스템의 날짜와 시간을 알 수 있는 함수 os.date() UTC+0, 1970년 1월 1일 기준으로 경과한 시간을

plcman.tistory.com



 

Posted by Mister_Q