using System;
namespace FangYar.Common
{
public static class TimeFormatter
{
/// 获取时间戳
///
///
public static string GetTimeStamp(System.DateTime time)
{
long ts = ConvertDateTimeToInt(time);
return ts.ToString();
}
///
/// 将c# DateTime时间格式转换为Unix时间戳格式
///
/// 时间
/// long
public static long ConvertDateTimeToInt(System.DateTime time)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
long t = (time.Ticks - startTime.Ticks) / 10000; //除10000调整为13位
return t;
}
///
/// 计算两个日期的时间间隔
///
/// 第一个日期和时间
/// 第二个日期和时间
///
public static string DateDiff(DateTime datetimeone, DateTime datetimesecond)
{
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(datetimeone.Ticks);
TimeSpan ts2 = new TimeSpan(datetimesecond.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString() + "天"
+ ts.Hours.ToString() + "小时"
+ ts.Minutes.ToString() + "分钟"
+ ts.Seconds.ToString() + "秒";
return dateDiff;
}
///
/// 计算两个日期的时间间隔,返回小时
///
/// 第一个日期和时间
/// 第二个日期和时间
///
public static int DateDiffHours(DateTime datetimeone, DateTime datetimesecond)
{
TimeSpan ts1 = new TimeSpan(datetimeone.Ticks);
TimeSpan ts2 = new TimeSpan(datetimesecond.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
return ts.Hours;
}
///
/// 计算两个日期的时间间隔,返回分钟
///
/// 第一个日期和时间
/// 第二个日期和时间
///
public static int DateDiffMinutes(DateTime datetimeone, DateTime datetimesecond)
{
TimeSpan ts1 = new TimeSpan(datetimeone.Ticks);
TimeSpan ts2 = new TimeSpan(datetimesecond.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
return ts.Minutes;
}
///
/// 计算两个日期的时间间隔,返回秒
///
/// 第一个日期和时间
/// 第二个日期和时间
///
public static int DateDiffSeconds(DateTime datetimeone, DateTime datetimesecond)
{
TimeSpan ts1 = new TimeSpan(datetimeone.Ticks);
TimeSpan ts2 = new TimeSpan(datetimesecond.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
return ts.Seconds;
}
///
/// 计算两个日期的时间间隔,返回天
///
/// 第一个日期和时间
/// 第二个日期和时间
///
public static int DateDiffDays(DateTime datetimeone, DateTime datetimesecond)
{
TimeSpan ts1 = new TimeSpan(datetimeone.Ticks);
TimeSpan ts2 = new TimeSpan(datetimesecond.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
return ts.Days;
}
}
}