我需要获得当月的数量,而不是得到它的名字:
void main()
{
SysTime dt = Clock.currTime();
writeln(dt.month);
}
输出结果为:
oct
但我需要10
。我怎么能得到它?我发现只有一个解决方案cast
到int
,但有没有更好的方法,或者没问题?
答案 0 :(得分:3)
使用std.conv.to()
转换类型。
这似乎有效:
import std.conv;
import std.datetime;
import std.stdio;
void main()
{
SysTime dt = Clock.currTime();
writeln(dt.month.to!ushort);
}
10
答案 1 :(得分:2)
如果您只需要打印,请使用下面的writefln
。
writefln("%d", dt.month);
如果您需要使用该号码,则可以使用to
模板,该模板通常应用于转化。
writeln(dt.month.to!size_t);
// or ...
writeln(to!size_t(dt.month));
最终你也可以施展它。
writeln(cast(size_t)dt.month);
答案 2 :(得分:0)
默认情况下不需要显式转换,因为月枚举的类型是 int (查看有关enums的更多信息)。
import std.datetime;
// Month is an enum - http://dlang.org/phobos/std_datetime.html#.Month
Month month = Clock.currTime().month;
int monthnum = 0 + month; // works