unix_time and convert_date (#332)

* very simple stuff

* added unix_date and imporved unix_time

* Update docs/scarpet/api/Auxiliary.md

Co-authored-by: gnembon <41132274+gnembon@users.noreply.github.com>

* Update Full.md

* Dont 100% work, but It'll do untl I fix tomorrow

* works, I think

* changeing weekdays

* removing weird stuff I didnt mean to do

* previous commits

* moving to expression.java

because prof.gnembon said

* moving away from LazyFUnctions

cos gnembon doesn't like evaluating somewhere

* updating docs

* tweaks to dates

Co-authored-by: Ghoulboy78 <ghoulboy27@gmail.com>
This commit is contained in:
gnembonandGhoulboy78 authored and GitHub committed 2020-06-17 11:10:59 -03:00
1 parent b77268553e
commit 29a81d53d6
5 files changed
+162

No files matched your search

+46
View File
@@ -921,6 +921,52 @@ flip_my_world_upside_down();
print(str('this took %d milliseconds',time()-start_time))
</pre>
### `unix_time()`
Returns standard POSIX time as a number of milliseconds since the start of the epoch
(00:00 am and 0 seconds, 1 Jan 1970).
Unlike the previous function, this can be used to get exact time, but it varies from time zone to time zone.
### `convert_date(milliseconds)`
### `convert_date(year, month, date, hours?, mins?, secs?)`
### `convert_date(l(year, month, date, hours?, mins?, secs?))`
If called with a single argument, converts standard POSIX time to a list in the format:
`l(year, month, date, hours, mins, secs, day_of_week, day_of_year, week_of_year)`
eg: `convert_date(1592401346960) -> [2020, 6, 17, 10, 42, 26, 3, 169, 25]`
Where the `6` stands for June, but `17` stands for 17th, `10` stands for 10am,
`42` stands for 42 minutes past the hour, and `26` stands for 26 seconds past the minute,
and `3` stands for Wednesday, `169` is the day of year, and `25` is a week of year.
Run `convert_date(unix_time())` to get current time as list.
When called with a list, or with 3 or 6 arguments, returns standard POSIX time as a number of milliseconds since the
start of the epoch (1 Jan 1970),
using the time inputted into the function as opposed to the system time.
Example editing:
<pre>
date = convert_date(unix_time());
months = l('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
days = l('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
print(
str('Its %s, %d %s %d, %02d:%02d:%02d',
days:(date:6-1), date:2, months:(date:1-1), date:0, date:3, date:4, date:5
)
)
</pre>
This will give you a date:
It is currently `hrs`:`mins` and `secs` seconds on the `date`th of `month`, `year`
### `profile_expr(expression)`
Returns number of times given expression can be run in 50ms time. Useful to profile and optimize your code.