2017-05-22 1 views
1

미리 정의되거나 동적 인 두 날짜의 날짜 차이를 얻을 수 있는지 알고 싶습니다.루아 날짜 차이

이 기능을 사용할 때 적절한 날짜 형식이 필요합니까?

function datediff(d1, d2, ...) 

    col_date1 = os.time({year = d1:year(), month = d1:month(), day = d1:day() , hour = d1:hour(), min = d1:minute(), sec = d1:second() }) 
    col_date2 = os.time({year = d2:year(), month = d2:month(), day = d2:day() , hour = d2:hour(), min = d2:minute(), sec = d2:second() }) 

    local arg={...} 
    if arg[1] ~= nil then 
     if arg[1] == "min" then 
      return math.abs((col_date1 - col_date2)/60) 
     elseif arg[1] == "hour" then 
      return math.abs((col_date1 - col_date2)/3600) 
     elseif arg[1] == "day" then 
      return math.abs((col_date1 - col_date2)/86400) 
     end 
    end 
    return math.abs(col_date1 - col_date2) 
    --return 0 
end 

이것은 코드입니다. 그러나 나는 이것이 정확히 어떻게 작동하는지 전혀 모른다. 입력은 31122017 - 31122016과 같아야합니다 (1 년). 또는 그런 것.

답변

1

이 코드는 사용자 정의 날짜 객체를 입력으로 사용합니다. 따라서, 예를 들어, 당신은 2017년 5월 22일 같은 날짜를 나타내는 날짜 객체 d, 당신에게 번호 2017, d:hour() 당신에게 숫자 5를 줄 것을 줄 것 d:year()를 호출 등이 있다면

있습니다 없음 함수는 표준 루아에서 이와 같은 객체를 만들기 때문에이 코드가있는 프로젝트는 별도의 날짜 라이브러리를 사용해야합니다. 프로젝트에서 예상하는 날짜 개체를 만드는 방법을 찾아서 함수에 전달해야합니다.