75 lines
2 KiB
Markdown
75 lines
2 KiB
Markdown
|
# Release notes for Time (v0.6.0)
|
||
|
|
||
|
This marks another notable release from `v0.3.1`. For anyone of you who isn't
|
||
|
familiar with what this is all about, [time](https://github.com/gernest/time) is a time package for the zig
|
||
|
programming language. It offers a clean API to manipulate and display time,
|
||
|
this package also supports time zones.
|
||
|
|
||
|
## Notable changes
|
||
|
|
||
|
|
||
|
### Print durations in a human format
|
||
|
|
||
|
`Duration.string` returns a human readable string for the duration.
|
||
|
For instance if you want to print duration of one hour ,four minutes and 10 seconds.
|
||
|
|
||
|
```
|
||
|
const hour = Duration.Hour.value;
|
||
|
const minute = Duration.Minute.value;
|
||
|
const second = Duration.Second.value;
|
||
|
var d = Duration.init(hour + minute * 4 + second * 10);
|
||
|
warn("duration is {} \n", d.string());
|
||
|
```
|
||
|
```
|
||
|
duration is 1h4m10s
|
||
|
```
|
||
|
|
||
|
|
||
|
## date manipulations
|
||
|
|
||
|
### Time.addDate
|
||
|
|
||
|
You can add date value to an existing Time instance to get a new date.
|
||
|
|
||
|
For example
|
||
|
|
||
|
```
|
||
|
var local = time.Location.getLocal();
|
||
|
var ts = time.now(&local);
|
||
|
var buf = try std.Buffer.init(std.debug.global_allocator, "");
|
||
|
defer buf.deinit();
|
||
|
try ts.string(&buf);
|
||
|
warn("\ncurrent time is {}\n", buf.toSlice());
|
||
|
|
||
|
// let's add 1 year
|
||
|
ts = ts.addDate(1, 0, 0);
|
||
|
try ts.string(&buf);
|
||
|
warn("this time next year is {}\n", buf.toSlice());
|
||
|
```
|
||
|
|
||
|
```
|
||
|
current time is 2018-12-08 10:32:30.000178063 +0300 EATm=+419006.837156719
|
||
|
this time next year is 2019-12-08 10:32:30.000178063 +0300 EAT
|
||
|
```
|
||
|
|
||
|
Please play with the api, you can add year,month,day. If you want to go back in
|
||
|
time then use negative numbers. From the example above if you want to back one year then
|
||
|
use `ts.addDate(-1, 0, 0)`
|
||
|
|
||
|
|
||
|
This is just highlight, there are
|
||
|
|
||
|
- lots of bug fixes
|
||
|
- cleanups to more idiomatic zig
|
||
|
- lots of utility time goodies like `Time.beginningOfMonth`
|
||
|
- improved documentation
|
||
|
- lots of tests added
|
||
|
- ... and so much more
|
||
|
|
||
|
I encourage you to take a look at it so you can experiment for yourself.
|
||
|
|
||
|
All kind of feedback is welcome.
|
||
|
|
||
|
Enjoy
|
||
|
|