Mercurial Hosting > luan
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 |