How to add time to Clock.currTime

Jonathan M Davis jmdavisProg at gmx.com
Fri Oct 4 19:42:35 PDT 2013


On Saturday, October 05, 2013 03:31:33 JohnnyK wrote:
> Wow I appreciate the quick response. Ok I have seen this before.
> What is the dur? Where is dur defined? Also I am confused how
> 300.seconds would work. How can a literal number have properties?

dur is in core.time as are the aliases for each of the units:

http://dlang.org/phobos/core_time.html#dur

300.seconds works thanks to UFCS (Universal Function Call Syntax). Any time 
that the compiler sees

x.foo(args);

and foo is not a member function of x, it converts it to

foo(x, args);

So, if there's a free function with that name which will work with those 
arguments, then it will be called (otherwise, you'll get an error, because 
there is no matching function). The parens can be dropped on 300.seconds, 
because the parens are optional on function calls that take no arguments. 
seconds is not actually a property function (it's an alias for dur!"seconds, 
which is not a property function either), but the fact that the parens are 
optional makes it so that you can use it with the same syntax that would be 
used for a getter property.

If you want an overview of std.datetime and the time stuff in Phobos, I suggest 
that you read

http://dlang.org/intro-to-datetime.html

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list