ludc
2023-08-24 56c45e1f4be85d6bbfb3a03437021c6742b32ad9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function isval(x) { return x !== undefined && x !== null; }
 
function keys(o) { return Object.keys(o); }
 
function evert_key(obj, key) {
    var o = [], K = keys(obj);
    for(var i = 0; i !== K.length; ++i) o[obj[K[i]][key]] = K[i];
    return o;
}
 
function evert(obj) {
    var o = [], K = keys(obj);
    for(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];
    return o;
}
 
function evert_num(obj) {
    var o = [], K = keys(obj);
    for(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);
    return o;
}
 
function evert_arr(obj) {
    var o = [], K = keys(obj);
    for(var i = 0; i !== K.length; ++i) {
        if(o[obj[K[i]]] == null) o[obj[K[i]]] = [];
        o[obj[K[i]]].push(K[i]);
    }
    return o;
}
 
/* TODO: date1904 logic */
function datenum(v, date1904) {
    if(date1904) v+=1462;
    var epoch = Date.parse(v);
    return (epoch + 2209161600000) / (24 * 60 * 60 * 1000);
}
 
function cc2str(arr) {
    var o = "";
    for(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);
    return o;
}