Beispiel #1
0
 internal static bool GetStartTime(ITashaHousehold household, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time ourStartTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(household, activity),
                                                     frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out ourStartTime));
 }
Beispiel #2
0
        /// <summary>
        /// Gets a duration from the given startTime based on a person and activity and startTime.
        /// The duration will be less than the length of the day minus the startTime
        /// </summary>
        /// <param name="person"></param>
        /// <param name="activity"></param>
        /// <param name="startTime"></param>
        /// <returns></returns>
        internal static bool GetDuration(ITashaPerson person, Activity activity, Time startTime, Random random, out Time duration)
        {
            int length = Scheduler.StartTimeQuanta - 1 - Distribution.TimeOfDayToDistribution(startTime);

            return(Distribution.GetRandomStartDurationTimeFrequency(Distribution.GetDistributionID(person, activity), startTime, 0, length, random, out duration));
        }
Beispiel #3
0
 internal static bool GetStartTime(ITashaHousehold household, Activity activity, int frequency, Random random, out Time startTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(household, activity),
                                                     frequency, 0, Scheduler.StartTimeQuanta - 1, random, out startTime));
 }
Beispiel #4
0
 /// <summary>
 /// Gets a startTime between the given startTime and endTime
 /// </summary>
 /// <param name="person"></param>
 /// <param name="activity"></param>
 /// <param name="frequency"></param>
 /// <param name="startTime"></param>
 /// <param name="endTime"></param>
 /// <returns></returns>
 internal static bool GetStartTime(ITashaPerson person, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time returnTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(person, activity),
                                                     frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out returnTime));
 }
Beispiel #5
0
 /// <summary>
 /// Gets a startTime based on the given person and activity, assumes frequency is 1
 /// StartTime is between start and end of day
 /// </summary>
 /// <param name="person">The person</param>
 /// <param name="activity">The activity</param>
 /// <returns></returns>
 internal static bool GetStartTime(ITashaPerson person, Activity activity, Random random, out Time startTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(person, activity),
                                                     1, 0, Scheduler.StartTimeQuanta - 1, random, out startTime));
 }
Beispiel #6
0
 internal static bool GetDuration(ITashaHousehold household, Activity activity, Time startTime, Time maxDuration, Random random, out Time duration)
 {
     return(Distribution.GetRandomStartDurationTimeFrequency(Distribution.GetDistributionID(household, activity), startTime, 0,
                                                             Distribution.DurationToDistribution(maxDuration), random, out duration));
 }
Beispiel #7
0
 /// <summary>
 /// Gets a duration that is not greater than the given max Duration
 /// </summary>
 /// <param name="person"></param>
 /// <param name="activity"></param>
 /// <param name="startTime"></param>
 /// <param name="maxDuration"></param>
 /// <returns></returns>
 internal static bool GetDuration(ITashaPerson person, Activity activity, Time startTime, Time maxDuration, Random random, out Time returnStartTime)
 {
     return(Distribution.GetRandomStartDurationTimeFrequency(Distribution.GetDistributionID(person, activity), startTime, 0, Distribution.DurationToDistribution(maxDuration), random, out returnStartTime));
 }