Guest User

Untitled

a guest
Jul 20th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. void main()
  2. {
  3. import core.time;
  4. import std.stdio: write, writeln, writef, writefln;
  5. {
  6. auto d = dur!"days"(12) + dur!"minutes"(7) + dur!"usecs"(501223);
  7. long days;
  8. int seconds;
  9. short msecs;
  10. d.split!("days", "seconds", "msecs")(days, seconds, msecs);
  11. assert(days == 12);
  12. assert(seconds == 7 * 60);
  13. assert(msecs == 501);
  14.  
  15. auto splitStruct = d.split!("days", "seconds", "msecs")();
  16. assert(splitStruct.days == 12);
  17. assert(splitStruct.seconds == 7 * 60);
  18. assert(splitStruct.msecs == 501);
  19.  
  20. auto fullSplitStruct = d.split();
  21. assert(fullSplitStruct.weeks == 1);
  22. assert(fullSplitStruct.days == 5);
  23. assert(fullSplitStruct.hours == 0);
  24. assert(fullSplitStruct.minutes == 7);
  25. assert(fullSplitStruct.seconds == 0);
  26. assert(fullSplitStruct.msecs == 501);
  27. assert(fullSplitStruct.usecs == 223);
  28. assert(fullSplitStruct.hnsecs == 0);
  29.  
  30. assert(d.split!"minutes"().minutes == d.total!"minutes");
  31. }
  32.  
  33. {
  34. auto d = dur!"days"(12);
  35. assert(d.split!"weeks"().weeks == 1);
  36. assert(d.split!"days"().days == 12);
  37.  
  38. assert(d.split().weeks == 1);
  39. assert(d.split().days == 5);
  40. }
  41.  
  42. {
  43. auto d = dur!"days"(7) + dur!"hnsecs"(42);
  44. assert(d.split!("seconds", "nsecs")().nsecs == 4200);
  45. }
  46.  
  47. {
  48. auto d = dur!"days"(-7) + dur!"hours"(-9);
  49. auto result = d.split!("days", "hours")();
  50. assert(result.days == -7);
  51. assert(result.hours == -9);
  52. }
  53.  
  54.  
  55. }
Add Comment
Please, Sign In to add comment