comparison src/luan/modules/Time.luan @ 1088:bae2d0c2576c

change module naming convention
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 26 Dec 2016 22:29:36 -0700
parents aa967fd73b80
children b2e4a22ffa5d
comparison
equal deleted inserted replaced
1087:4aab4dd3ac9c 1088:bae2d0c2576c
12 local Calendar = require "java:java.util.Calendar" 12 local Calendar = require "java:java.util.Calendar"
13 local Date = require "java:java.util.Date" 13 local Date = require "java:java.util.Date"
14 local TimeZone = require "java:java.util.TimeZone" 14 local TimeZone = require "java:java.util.TimeZone"
15 local SimpleDateFormat = require "java:java.text.SimpleDateFormat" 15 local SimpleDateFormat = require "java:java.text.SimpleDateFormat"
16 16
17 local M = {} 17 local Time = {}
18 18
19 function M.now() 19 function Time.now()
20 return System.currentTimeMillis() 20 return System.currentTimeMillis()
21 end 21 end
22 22
23 -- add more as needed 23 -- add more as needed
24 local fields = { 24 local fields = {
25 year = Calendar.YEAR; 25 year = Calendar.YEAR;
26 month = Calendar.MONTH; 26 month = Calendar.MONTH;
27 day_of_month = Calendar.DAY_OF_MONTH; 27 day_of_month = Calendar.DAY_OF_MONTH;
28 } 28 }
29 29
30 function M.get( time, ... ) 30 function Time.get( time, ... )
31 local cal = Calendar.getInstance() 31 local cal = Calendar.getInstance()
32 cal.setTimeInMillis(time) 32 cal.setTimeInMillis(time)
33 local rtn = {} 33 local rtn = {}
34 for i, v in ipairs{...} do 34 for i, v in ipairs{...} do
35 local fld = fields[v] 35 local fld = fields[v]
41 rtn[i] = n 41 rtn[i] = n
42 end 42 end
43 return Table.unpack(rtn) 43 return Table.unpack(rtn)
44 end 44 end
45 45
46 function M.format(time,pattern) 46 function Time.format(time,pattern)
47 time = assert_long(time) 47 time = assert_long(time)
48 pattern = pattern or "yyyy-MM-dd HH:mm:ss" 48 pattern = pattern or "yyyy-MM-dd HH:mm:ss"
49 return SimpleDateFormat.new(pattern).format(Date.new(time)) 49 return SimpleDateFormat.new(pattern).format(Date.new(time))
50 end 50 end
51 51
52 function M.on( year, month, day, hour, minute, second, millis ) 52 function Time.on( year, month, day, hour, minute, second, millis )
53 month = month - 1 53 month = month - 1
54 local cal = Calendar.getInstance() 54 local cal = Calendar.getInstance()
55 cal.setLenient(false) 55 cal.setLenient(false)
56 cal.set( year, month, day, hour or 0, minute or 0, second or 0 ) 56 cal.set( year, month, day, hour or 0, minute or 0, second or 0 )
57 cal.set( Calendar.MILLISECOND, millis or 0 ) 57 cal.set( Calendar.MILLISECOND, millis or 0 )
58 return cal.getTimeInMillis() 58 return cal.getTimeInMillis()
59 end 59 end
60 60
61 function M.period( t ) 61 function Time.period( t )
62 local cal = Calendar.getInstance() 62 local cal = Calendar.getInstance()
63 cal.setTimeZone(TimeZone.getTimeZone("GMT")) 63 cal.setTimeZone(TimeZone.getTimeZone("GMT"))
64 local days = t.days or 0 64 local days = t.days or 0
65 days = days + 1 65 days = days + 1
66 cal.set( 1970, 0, days, t.hours or 0, t.minutes or 0, t.seconds or 0 ) 66 cal.set( 1970, 0, days, t.hours or 0, t.minutes or 0, t.seconds or 0 )
67 cal.set( Calendar.MILLISECOND, t.millis or 0 ) 67 cal.set( Calendar.MILLISECOND, t.millis or 0 )
68 return cal.getTimeInMillis() 68 return cal.getTimeInMillis()
69 end 69 end
70 70
71 function M.parse( pattern, source ) 71 function Time.parse( pattern, source )
72 return SimpleDateFormat.new(pattern).parse(source).getTime() 72 return SimpleDateFormat.new(pattern).parse(source).getTime()
73 end 73 end
74 74
75 75
76 local count_times = { 76 local count_times = {
77 days = M.period{days=1} 77 days = Time.period{days=1}
78 hours = M.period{hours=1} 78 hours = Time.period{hours=1}
79 minutes = M.period{minutes=1} 79 minutes = Time.period{minutes=1}
80 seconds = M.period{seconds=1} 80 seconds = Time.period{seconds=1}
81 } 81 }
82 82
83 function M.count( time, ... ) 83 function Time.count( time, ... )
84 local cal = Calendar.getInstance() 84 local cal = Calendar.getInstance()
85 cal.setTimeInMillis(time) 85 cal.setTimeInMillis(time)
86 local rtn = {} 86 local rtn = {}
87 for i, v in ipairs{...} do 87 for i, v in ipairs{...} do
88 local t = count_times[v] 88 local t = count_times[v]
93 rtn[#rtn+1] = time 93 rtn[#rtn+1] = time
94 return Table.unpack(rtn) 94 return Table.unpack(rtn)
95 end 95 end
96 96
97 97
98 return M 98 return Time