2 % Copyright 2008 Grégory Burri
4 % This file is part of Euphorik.
6 % Euphorik is free software: you can redistribute it and/or modify
7 % it under the terms of the GNU General Public License as published by
8 % the Free Software Foundation, either version 3 of the License, or
9 % (at your option) any later version.
11 % Euphorik is distributed in the hope that it will be useful,
12 % but WITHOUT ANY WARRANTY; without even the implied warranty of
13 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 % GNU General Public License for more details.
16 % You should have received a copy of the GNU General Public License
17 % along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
19 % Module avec plein de bordel utile à l'intérieur.
23 -module(euphorik_common
).
33 % Arrondi un float à l'entier supérieur.
34 % Bizarre, cette fonction n'existe pas dans la stdlib.
35 % Pas utilisé mais bon ca me fait de la peine de l'enlever.
39 Neg
when Neg
< 0 -> T
;
40 Pos
when Pos
> 0 -> T
+ 1;
45 % Retourne la difference entre deux timestamp (erlang:now()) en miliseconde
46 delta_date_ms(D1
, D2
) ->
47 1000000000 * abs(element(1, D1
) - element(1, D2
)) + 1000 * abs(element(2, D1
) - element(2, D2
)) + trunc(abs(element(3, D1
) - element(3, D2
)) / 1000).
50 % Retourne la différence entre deux timestamp (erlang:now) en minutes
51 delta_date_minute(D1
, D2
) ->
52 trunc(delta_date_ms(D1
, D2
) / 1000 / 60).
55 serialize_ip(undefined
) ->
58 lists:flatten(io_lib:format("~w.~w.~w.~w", tuple_to_list(IP
))).
62 case io_lib:fread("~d.~d.~d.~d", IP
) of
63 {ok
, [A
, B
, C
, D
], []} -> {A
, B
, C
, D
};