Skip to main content

Definition

Assembly: CloudNimble.EasyAF.Core.dll Namespace: CloudNimble.EasyAF.Core Inheritance: CloudNimble.EasyAF.Core.Interval<T>

Syntax

CloudNimble.EasyAF.Core.MoneyInterval<T>

Summary

Represents a sum of money to be exchanged during a given interval.

Remarks

This has been broken up to allow for conversions (for example, converting /monthinto/month into /day) to be self-contained. This should reduce duplication.

Constructors

.ctor

Syntax

public MoneyInterval()

.ctor

Initializes a new instance of the MoneyInterval1` class with the specified interval value and type.

Syntax

public MoneyInterval(T value, CloudNimble.EasyAF.Core.IntervalType type)

Parameters

NameTypeDescription
valueTThe duration of the interval.
typeCloudNimble.EasyAF.Core.IntervalTypeThe base unit that describes what the quantity of this interval references.

.ctor

Initializes a new instance of the MoneyInterval1` class with the specified money amount, interval value, and type.

Syntax

public MoneyInterval(System.Decimal money, T value, CloudNimble.EasyAF.Core.IntervalType type)

Parameters

NameTypeDescription
moneySystem.DecimalThe amount of money represented by the given interval.
valueTThe duration of the interval.
typeCloudNimble.EasyAF.Core.IntervalTypeThe base unit that describes what the quantity of this interval references.

.ctor Inherited

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Creates a new instance of the Interval1` class.

Syntax

public Interval()

.ctor Inherited

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Creates a new instance of the Interval1` class.

Syntax

public Interval(T value, CloudNimble.EasyAF.Core.IntervalType type)

Parameters

NameTypeDescription
valueTThe duration of the interval.
typeCloudNimble.EasyAF.Core.IntervalTypeThe base unit that describes what the quantity of this Interval references.

.ctor Inherited

Inherited from object

Syntax

public Object()

Properties

Money

The amount of money represented by the given IntervalType

Syntax

public System.Decimal Money { get; set; }

Property Value

Type: System.Decimal

Type Inherited

Inherited from CloudNimble.EasyAF.Core.Interval<T>
The base unit that describes what the quantity of this Interval references.

Syntax

public CloudNimble.EasyAF.Core.IntervalType Type { get; set; }

Property Value

Type: CloudNimble.EasyAF.Core.IntervalType

Value Inherited

Inherited from CloudNimble.EasyAF.Core.Interval<T>
The duration of the Interval.

Syntax

public T Value { get; set; }

Property Value

Type: T

Methods

Equals Inherited Virtual

Inherited from object

Syntax

public virtual bool Equals(object obj)

Parameters

NameTypeDescription
objobject?-

Returns

Type: bool

Equals Inherited

Inherited from object

Syntax

public static bool Equals(object objA, object objB)

Parameters

NameTypeDescription
objAobject?-
objBobject?-

Returns

Type: bool

GetHashCode Inherited Virtual

Inherited from object

Syntax

public virtual int GetHashCode()

Returns

Type: int

GetType Inherited

Inherited from object

Syntax

public System.Type GetType()

Returns

Type: System.Type

MemberwiseClone Inherited

Inherited from object

Syntax

protected internal object MemberwiseClone()

Returns

Type: object

PerDay Override

Calculates the monetary amount per day based on this money interval.

Syntax

public override System.Decimal PerDay()

Returns

Type: System.Decimal The amount of money per day as a decimal value.

PerDay Override

Calculates the total monetary amount per day based on this money interval and a quantity multiplier.

Syntax

public override System.Decimal PerDay(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity multiplier (e.g., hours worked, units sold).

Returns

Type: System.Decimal The total amount of money per day as a decimal value.

Examples

// $25 per hour wage, calculate earnings for 8 hours of work per day
var wage = new MoneyInterval&lt;double&gt;(25m, 1, IntervalType.Hours);
decimal totalPerDay = wage.PerDay(8); // $4800 per day (25 * 24 * 8)

PerDay Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance, calculates how many occurrences will happen per day.

Syntax

public virtual System.Decimal PerDay()

Returns

Type: System.Decimal The number of occurrences per day as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

PerDay Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance and a quantity, calculates the total output per day.

Syntax

public virtual System.Decimal PerDay(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity to multiply by the interval frequency.

Returns

Type: System.Decimal The total output per day as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

Examples

// Widget production: 1 widget every 1.5 hours, total from 100 units of material per day
var production = new Interval&lt;double&gt;(1.5, IntervalType.Hours);
decimal totalPerDay = production.PerDay(100); // 1600 widgets per day (16 * 100)

PerHour Override

Calculates the monetary amount per hour based on this money interval.

Syntax

public override System.Decimal PerHour()

Returns

Type: System.Decimal The amount of money per hour as a decimal value.

PerHour Override

Calculates the total monetary amount per hour based on this money interval and a quantity multiplier.

Syntax

public override System.Decimal PerHour(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity multiplier (e.g., hours worked, units sold).

Returns

Type: System.Decimal The total amount of money per hour as a decimal value.

Examples

// $25 per hour wage, calculate earnings for 8 hours of work per hour
var wage = new MoneyInterval&lt;double&gt;(25m, 1, IntervalType.Hours);
decimal totalPerHour = wage.PerHour(8); // $200 per hour (25 * 8)

PerHour Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance, calculates how many occurrences will happen per hour.

Syntax

public virtual System.Decimal PerHour()

Returns

Type: System.Decimal The number of occurrences per hour as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

PerHour Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance and a quantity, calculates the total output per hour.

Syntax

public virtual System.Decimal PerHour(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity to multiply by the interval frequency.

Returns

Type: System.Decimal The total output per hour as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

Examples

// Widget production: 1 widget every 1.5 hours, total from 100 units of material per hour
var production = new Interval&lt;double&gt;(1.5, IntervalType.Hours);
decimal totalPerHour = production.PerHour(100); // 66.67 widgets per hour (1/1.5 * 100)

PerMinute Override

Calculates the monetary amount per minute based on this money interval.

Syntax

public override System.Decimal PerMinute()

Returns

Type: System.Decimal The amount of money per minute as a decimal value.

PerMinute Override

Calculates the total monetary amount per minute based on this money interval and a quantity multiplier.

Syntax

public override System.Decimal PerMinute(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity multiplier (e.g., hours worked, units sold).

Returns

Type: System.Decimal The total amount of money per minute as a decimal value.

Examples

// $25 per hour wage, calculate earnings for 8 hours of work per minute
var wage = new MoneyInterval&lt;double&gt;(25m, 1, IntervalType.Hours);
decimal totalPerMinute = wage.PerMinute(8); // $3.33 per minute (25 * 8 / 60)

PerMinute Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance, calculates how many occurrences will happen per minute.

Syntax

public virtual System.Decimal PerMinute()

Returns

Type: System.Decimal The number of occurrences per minute as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

Remarks

If you need this as a whole number, wrap the result in Decimal).

PerMinute Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance and a quantity, calculates the total output per minute.

Syntax

public virtual System.Decimal PerMinute(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity to multiply by the interval frequency.

Returns

Type: System.Decimal The total output per minute as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

Examples

// Widget production: 1 widget every 90 minutes, total from 100 units of material per minute
var production = new Interval&lt;int&gt;(90, IntervalType.Minutes);
decimal totalPerMinute = production.PerMinute(100); // 1.11 widgets per minute (1/90 * 100)

PerMonth Override

Calculates the monetary amount per month based on this money interval.

Syntax

public override System.Decimal PerMonth()

Returns

Type: System.Decimal The amount of money per month as a decimal value.

PerMonth Override

Calculates the total monetary amount per month based on this money interval and a quantity multiplier.

Syntax

public override System.Decimal PerMonth(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity multiplier (e.g., hours worked, units sold).

Returns

Type: System.Decimal The total amount of money per month as a decimal value.

Examples

// $50 per day, calculate earnings for 20 working days per month
var dailyRate = new MoneyInterval&lt;double&gt;(50m, 1, IntervalType.Days);
decimal totalPerMonth = dailyRate.PerMonth(20); // $30,000 per month (50 * 30 * 20)

PerMonth Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance, calculates how many occurrences will happen per month.

Syntax

public virtual System.Decimal PerMonth()

Returns

Type: System.Decimal The number of occurrences per month as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

PerMonth Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance and a quantity, calculates the total output per month.

Syntax

public virtual System.Decimal PerMonth(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity to multiply by the interval frequency.

Returns

Type: System.Decimal The total output per month as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

Examples

// Widget production: 1 widget every 3 days, total from 200 units of material per month
var production = new Interval&lt;int&gt;(3, IntervalType.Days);
decimal totalPerMonth = production.PerMonth(200); // 2000 widgets per month (10 * 200)

PerWeek Override

Calculates the monetary amount per week based on this money interval.

Syntax

public override System.Decimal PerWeek()

Returns

Type: System.Decimal The amount of money per week as a decimal value.

PerWeek Override

Calculates the total monetary amount per week based on this money interval and a quantity multiplier.

Syntax

public override System.Decimal PerWeek(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity multiplier (e.g., hours worked, units sold).

Returns

Type: System.Decimal The total amount of money per week as a decimal value.

Examples

// $150 every 2.5 hours, calculate earnings for 40 hours of work per week
var freelance = new MoneyInterval&lt;double&gt;(150m, 2.5, IntervalType.Hours);
decimal totalPerWeek = freelance.PerWeek(40); // $40,320 per week

PerWeek Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance, calculates how many occurrences will happen per week.

Syntax

public virtual System.Decimal PerWeek()

Returns

Type: System.Decimal The number of occurrences per week as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

PerWeek Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance and a quantity, calculates the total output per week.

Syntax

public virtual System.Decimal PerWeek(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity to multiply by the interval frequency.

Returns

Type: System.Decimal The total output per week as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

Examples

// Widget production: 1 widget every 2 days, total from 50 units of material per week
var production = new Interval&lt;int&gt;(2, IntervalType.Days);
decimal totalPerWeek = production.PerWeek(50); // 175 widgets per week (3.5 * 50)

PerYear Override

Calculates the monetary amount per year based on this money interval.

Syntax

public override System.Decimal PerYear()

Returns

Type: System.Decimal The amount of money per year as a decimal value.

PerYear Override

Calculates the total monetary amount per year based on this money interval and a quantity multiplier.

Syntax

public override System.Decimal PerYear(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity multiplier (e.g., hours worked, units sold).

Returns

Type: System.Decimal The total amount of money per year as a decimal value.

Examples

// $75,000 annual salary, calculate total compensation with 1.2x multiplier
var salary = new MoneyInterval&lt;double&gt;(75000m, 1, IntervalType.Years);
decimal totalPerYear = salary.PerYear(1.2m); // $90,000 per year (75000 * 1.2)

PerYear Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance, calculates how many occurrences will happen per year.

Syntax

public virtual System.Decimal PerYear()

Returns

Type: System.Decimal The number of occurrences per year as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

PerYear Inherited Virtual

Inherited from CloudNimble.EasyAF.Core.Interval<T>
Given this Interval1` instance and a quantity, calculates the total output per year.

Syntax

public virtual System.Decimal PerYear(System.Decimal quantity)

Parameters

NameTypeDescription
quantitySystem.DecimalThe quantity to multiply by the interval frequency.

Returns

Type: System.Decimal The total output per year as a decimal value.

Exceptions

ExceptionDescription
InvalidCastExceptionThrown if T is not convertible to a Decimal.

Examples

// Widget production: 1 widget every 1 week, total from 500 units of material per year
var production = new Interval&lt;int&gt;(1, IntervalType.Weeks);
decimal totalPerYear = production.PerYear(500); // 26071 widgets per year (52.14 * 500)

ReferenceEquals Inherited

Inherited from object

Syntax

public static bool ReferenceEquals(object objA, object objB)

Parameters

NameTypeDescription
objAobject?-
objBobject?-

Returns

Type: bool

ToString Override

Syntax

public override string ToString()

Returns

Type: string

ToString

Returns a string representation of the money interval with the specified number of decimal places for the currency value.

Syntax

public string ToString(int decimals)

Parameters

NameTypeDescription
decimalsintThe number of decimal places to display for the currency value.

Returns

Type: string A formatted string showing the money amount per interval period.

ToString Override

Inherited from CloudNimble.EasyAF.Core.Interval<T>

Syntax

public override string ToString()

Returns

Type: string

ToString Inherited Virtual

Inherited from object

Syntax

public virtual string ToString()

Returns

Type: string?