有关一下时间处理方法

         /// <summary>
/// 将时间转换成几小时、几天之类的格式
/// </summary>
/// <param name="maxDays">最多显示几天前</param>
/// <param name="minuteDif">几分钟之内显示成刚刚</param>
/// <param name="dateTime">需要转换的时间</param>
/// <returns></returns>
public static string ConvertDateToTime(DateTime? dateTime,int maxDays=,int minuteDif=)
{
string hoursAgo = "小时前";
string minuteAgo = "分钟前";
string dayAgo = "天前";
if (dateTime.HasValue)
{
if (dateTime.Value.AddMinutes(minuteDif) > DateTime.Now)//小于设置的时间则显示为刚刚
{
return "刚刚";
}else if (dateTime.Value.AddMinutes() > DateTime.Now)//一小时之内显示分钟
{
int maxMinute = DateTime.Now.Minute;
int minMinute=dateTime.Value.Minute;
return GetPositiveNumber(minMinute,maxMinute,)+minuteAgo;
}else if((dateTime.Value.AddHours()>DateTime.Now))//一天之内显示几小时之前
{
int maxHour = DateTime.Now.Hour;
int minHour = dateTime.Value.Hour;
return GetPositiveNumber(minHour, maxHour, ) + hoursAgo;
}else if (dateTime.Value.AddDays(maxDays) > DateTime.Now)//显示几天前
{
int maxDay = DateTime.Now.Day;
int minDay = dateTime.Value.Day;
return GetPositiveNumber(minDay, maxDay, ) + dayAgo;
}
else
{
return dateTime.Value.Date.ToString("MM-dd");
}
}
return null;
}
/// <summary>
/// 主要计算时间差
/// </summary>
/// <param name="minValue">需要换算时间值</param>
/// <param name="maxValue">当前时间值</param>
/// <param name="reference">换算率</param>
/// <returns></returns>
public static int GetPositiveNumber(int minValue, int maxValue, int reference)
{
return maxValue - minValue > ? maxValue - minValue : maxValue - minValue + reference;
} #region 把秒转换成分钟
/// <summary>
/// 把秒转换成分钟
/// </summary>
/// <returns></returns>
public static int SecondToMinute(int Second)
{
decimal mm = (decimal)((decimal)Second / (decimal));
return Convert.ToInt32(Math.Ceiling(mm));
}
#endregion #region 返回某年某月最后一天
/// <summary>
/// 返回某年某月最后一天
/// </summary>
/// <param name="year">年份</param>
/// <param name="month">月份</param>
/// <returns>日</returns>
public static int GetMonthLastDate(int year, int month)
{
DateTime lastDay = new DateTime(year, month, new System.Globalization.GregorianCalendar().GetDaysInMonth(year, month));
int Day = lastDay.Day;
return Day;
}
#endregion #region 时分秒转换成秒
/// <summary>
/// 时分秒转换成秒
/// </summary>
public static int TimeToSecond(int hour, int minute, int second)
{
TimeSpan ts = new TimeSpan(hour, minute, second);
return (int)ts.TotalSeconds;
}
#endregion #region 秒转换为时分秒
/// <summary>
/// 秒转换为时分秒
/// </summary>
/// <param name="seconds"></param>
/// <returns></returns>
public static string SecondToDateTime(int seconds)
{
TimeSpan ts = new TimeSpan(, , seconds);
string totalTime = string.Format("{0:00}:{1:00}:{2:00}", (int)ts.TotalHours, ts.Minutes, ts.Seconds);
return totalTime;// (int)ts.TotalHours + ":" + ts.Minutes + ":" + ts.Seconds;
}
#endregion #region 返回时间差
public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
string dateDiff = null;
try
{
//TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
//TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
//TimeSpan ts = ts1.Subtract(ts2).Duration();
TimeSpan ts = DateTime2 - DateTime1;
if (ts.Days >= )
{
dateDiff = DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";
}
else
{
if (ts.Hours > )
{
dateDiff = ts.Hours.ToString() + "小时前";
}
else
{
dateDiff = ts.Minutes.ToString() + "分钟前";
}
}
}
catch
{ }
return dateDiff;
}
#endregion #region 时间格式化
/// <summary>
/// 时间格式化
/// </summary>
/// <param name="obj"></param>
/// <param name="format"></param>
/// <param name="isFormat"></param>
/// <returns></returns>
public static string DateTimeFormat(object obj, string format, bool isFormat)
{
string str = string.Empty;
if (null != obj && PageValidate.IsDateTime(obj.ToString()))
{
if (isFormat)
{
str = Convert.ToDateTime(obj).ToString(format);
}
else
{
str = obj.ToString();
}
}
return str;
}
#endregion
05-08 14:57