Files
learning-zig-rus/src/ex-ch02-02.zig
zed 34c9cf8d4f On branch main
modified:   src/ch02.md
new file:   src/ex-ch02-01.zig
new file:   src/ex-ch02-02.zig
2023-11-11 15:53:00 +03:00

37 lines
744 B
Zig

const std = @import("std");
pub fn main() void {
const ts = Timestamp{.unix = 1699689923};
std.debug.print("{d}\n", .{ts.seconds()});
}
const TimestampType = enum {
unix,
datetime,
};
const Timestamp = union(TimestampType) {
unix: i64,
datetime: DateTime,
const DateTime = struct {
year: u16,
month: u8,
day: u8,
hour: u8,
minute: u8,
second: u8,
};
fn seconds(self: Timestamp) u16 {
switch (self) {
.datetime => |dt| return dt.second,
.unix => |ts| {
const seconds_since_midnight: i64 = @rem(ts, 86400);
return @intCast(@rem(seconds_since_midnight, 60));
},
}
}
};