65.9K
CodeProject is changing. Read more.
Home

Simple extension methods for code readability

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.89/5 (6 votes)

Oct 2, 2012

CPOL
viewsIcon

16972

Make your code more readable by using these methods related to Timespan management

Introduction

Whenever you deal with Timers, Timeouts, or anything which involves calculation on dates you will end up dealing with the TimeSpan class.

I don't find particularly readable to write the following code : 

// a 5 hours lapse of time
var theTimespan = new TimeSpan(0, 5, 0, 0, 0);

and find much more easy to read this one:

// a 5 hours lapse of time
var theTimespan = 5.Hours();

Extension methods 

Use these methods (which extends the int class) to create TimeSpan the easy and readable way. 

public static TimeSpan Days(this int value)
{
    return new TimeSpan(value, 0, 0, 0, 0);
}

public static TimeSpan Years(this int value)
{
    var dt = DateTime.Now.AddYears(value);
    return (dt - DateTime.Now).Duration();
}

public static TimeSpan Hours(this int value)
{
    return new TimeSpan(0, value, 0, 0, 0);
}

public static TimeSpan Minutes(this int value)
{
    return new TimeSpan(0, 0, value, 0, 0);
}

public static TimeSpan Seconds(this int value)
{
    return new TimeSpan(0, 0, 0, value, 0);
}

public static TimeSpan Milliseconds(this int value)
{
    return new TimeSpan(0, 0, 0, 0, value);
}