using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Sleis.Models
{
public class SimpleTimeSpan
{
public virtual DateTime? StartsOn { get; set; }
public virtual DateTime? EndsOn { get; set; }
public SimpleTimeSpan()
{
//StartsOn = DateTime.MinValue;
//EndsOn = DateTime.MaxValue;
}
public SimpleTimeSpan(DateTime start, DateTime end)
{
StartsOn = start;
EndsOn = end;
}
public SimpleTimeSpan(DateTime start, string end)
{
StartsOn = start;
if (!String.IsNullOrEmpty(end))
{
EndsOn = Convert.ToDateTime(end);
}
}
public SimpleTimeSpan(string start, string end)
{
if(!String.IsNullOrEmpty(start) && !String.IsNullOrEmpty(end))
{
StartsOn = Convert.ToDateTime(start);
EndsOn = Convert.ToDateTime(end);
}
}
public int Days
{
get
{
if (StartsOn!= null && EndsOn != null)
{
return GetDays(this.StartsOn.Value, this.EndsOn.Value);
}
return 0;
}
}
///
/// Calculates a timespan in days. Assumes that All spans start on at least 1.
///
///
///
///
public static int GetDays(DateTime start, DateTime end)
{
//int numOfDays = 0;
TimeSpan ts = new TimeSpan();
if (end == null || end == DateTime.MinValue || end > DateTime.Now)
{
ts = DateTime.Now - start;
}
else if (start > DateTime.MinValue && start < DateTime.MaxValue)
{
ts = end - start;
}
return Convert.ToInt32(Math.Floor(ts.TotalDays) + 1);
//return 1 if perfect 0. otherwise all other numbers will be adjusted by the ceiling
//return numOfDays == 0 ? 1 : numOfDays;
}
}
}