Class Timeslot

java.lang.Object
org.powertac.common.Timeslot
All Implemented Interfaces:
Comparable<Object>

public class Timeslot
extends Object
implements Comparable<Object>
A timeslot instance describes an interval of time (slot) for which power may be traded in the wholesale market. The duration of a timeslot is given by currentCompetition.getTimeslotLength(). Timeslots are uniquely identified by their serial numbers, which is the number of timeslots since currentCompetition.getSimulationBaseTime().

Timeslots are used (i) to correlate tradeable products (energy futures) and trades in the market with a future time interval where settlement (i.e. delivery / consumption) has to take place, (ii) to correlate meter readings with a duration in time, (iii) to allow tariffs to define different consumption / production prices for different times of a day. Timeslots are represented in server-broker communications by serial number.

This is an immutable type, so no state logging is needed. Creation events are logged by the repository.

Author:
Carsten Block, John Collins
  • Constructor Details

    • Timeslot

      public Timeslot​(int serial, org.joda.time.Instant start)
      Constructor is intended to be called by repository. Note that Timeslots are initially enabled. If you want to create a disabled timeslot, you have to call disable() after creating it.
  • Method Details

    • getSerialNumber

      public int getSerialNumber()
    • getId

      public long getId()
    • getStartInstant

      public org.joda.time.Instant getStartInstant()
    • getEndInstant

      public org.joda.time.Instant getEndInstant()
    • getStartTime

      public org.joda.time.DateTime getStartTime()
      Returns the DateTime representation of the start time for this timeslot
    • slotInDay

      public int slotInDay()
      Returns the timeslot index since the most recent midnight, starting at zero. Note that this is hourOfDay if timeslots are one hour. Assumes tz = 0.
    • dayOfWeek

      public int dayOfWeek()
      Returns the day of week for the start of this timeslot, starting at Monday = 1.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • compareTo

      public int compareTo​(Object arg)
      Specified by:
      compareTo in interface Comparable<Object>