2017-05-22 22 views
1

長期的に定義済みまたは動的である2つの日付の日付差を取得できるかどうかを知りたいと思います。ルアの日付差

この機能を使用するには、適切な日付形式が必要ですか?

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()を呼び出し、などがあった場合

ありなしこのようなオブジェクトを標準のLuaで作成する関数なので、このコードがあるプロジェクトは別の日付ライブラリを使用する必要があります。あなたのプロジェクトが期待する日付オブジェクトを作成する方法を見つけ出し、それらを関数に渡す必要があります。