2013-03-08 2 views
1

Я пытался делать это, чтобы сделать новую дату 90 секунд вперед от текущего системного времени:Erlang: добавляет вместе кортежи?

12> {{00,00,00},{00,01,30}}+erlang:localtime(). 
** exception error: an error occurred when evaluating an arithmetic expression 
    in operator +/2 
     called as {{0,0,0},{0,1,30}} + {{2013,3,8},{6,3,33}} 

Существуют ли какие-либо простые способы сделать это?

ответ

5

Вы не можете просто добавить кортежи в erlang. Вы можете добавить отдельные целые числа внутри кортежей, но чтобы манипулировать временем, вы должны использовать модуль calendar (docs):

1> Added = calendar:datetime_to_gregorian_seconds(calendar:local_time()) + 90. 
63529954043 
2> calendar:gregorian_seconds_to_datetime(Added). 
{{2013,3,8},{9,27,23}}