digitalmars.D.learn - Add property setting to chain
- closescreen (11/11) Jul 15 2017 Let i have code:
- closescreen (8/8) Jul 15 2017 I found this solution:
- =?UTF-8?Q?Ali_=c3=87ehreli?= (16/27) Jul 15 2017 I would probably write a function:
- closescreen (1/1) Jul 16 2017 Thanks for reply, Ali.
Let i have code:
Clock.currTime.to!DateTime.Interval!DateTime( 24.hours 
).fwdRange( h=>h+1.hours ).writeln;
Now if i want to set the minute=0 and second=0 without breaking 
chain, what i should do?
I think about somewhat like:
with( Clock.currTime.to!DateTime){
  minute=0;
  second=0
}.Interval!DateTime( 24.hours ).fwdRange( h=>h+1.hours ).writeln;
But it is wrong, because 'with' not return me anything.
 Jul 15 2017
I found this solution: Clock.currTime.to!DateTime.pipe!( dt=>(dt.minute=0,dt.second=0, dt) ).Interval!DateTime( 24.hours ).fwdRange( h=>h+1.hours ).writeln; Or: Clock.currTime.to!DateTime.pipe!( "a.minute=0, a.second=0, a" ).Interval!DateTime( 24.hours ).fwdRange( h=>h+1.hours ).writeln; Is this code looks good, idiomatic?
 Jul 15 2017
On 07/15/2017 12:53 PM, closescreen wrote:
 Let i have code:
 Clock.currTime.to!DateTime.Interval!DateTime( 24.hours ).fwdRange(
 h=>h+1.hours ).writeln;
 Now if i want to set the minute=0 and second=0 without breaking chain,
 what i should do?
 I think about somewhat like:
 with( Clock.currTime.to!DateTime){
  minute=0;
  second=0
 }.Interval!DateTime( 24.hours ).fwdRange( h=>h+1.hours ).writeln;
 But it is wrong, because 'with' not return me anything.
I would probably write a function:
import std.datetime;
import std.stdio;
import std.range;
import std.conv;
DateTime hourPrecision(DateTime dt) {
     dt.minute = 0;
     dt.second = 0;
     return dt;
}
void main() {
     Clock.currTime.to!DateTime.hourPrecision.Interval!DateTime( 
24.hours ).fwdRange( h=>h+1.hours ).writeln;
}
Ali
 Jul 15 2017








 
  
  
 
 closescreen <close.screen gmail.com>
 closescreen <close.screen gmail.com> 