ðŸŽ‰ Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io ðŸŽ‰

# codesections's solution

## to Clock in the Raku Track

Published at Jul 12 2020 · 0 comments
Instructions
Test suite
Solution

#### Note:

This exercise has changed since this solution was written.

Implement a clock that handles times without dates.

You should be able to add and subtract minutes to it.

Two clocks that represent the same time should be equal to each other.

## Resources

Remember to check out the Raku documentation and resources pages for information, tips, and examples if you get stuck.

## Running the tests

There is a test suite and module included with the exercise. The test suite (a file with the extension `.t6`) will attempt to run routines from the module (a file with the extension `.pm6`). Add/modify routines in the module so that the tests will pass! You can view the test data by executing the command `perl6 --doc *.t6` (* being the name of the test suite), and run the test suite for the exercise by executing the command `prove6 .` in the exercise directory.

## Source

Pairing session with Erin Drummond https://twitter.com/ebdrummond

## Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.

``````unit class Clock;

has \$!value;

submethod BUILD(:hour(\$hours) = 0, :minute(\$minutes) = 0) {
\$!value = DateTime.new(0).later(:\$hours).later(:\$minutes);
}

method time { sprintf "%02d:%02d", \$!value.hour, \$!value.minute }

method add-minutes      (\$minutes) { \$!value .= later   :\$minutes; self }
method subtract-minutes (\$minutes) { \$!value .= earlier :\$minutes; self }``````