using System;

namespace Infrastructure.Extensions
{
    public static class DateTimeExtension
    {
        /// <summary>
        /// 实现由C# 的时间到 Javascript 的时间的转换
        /// returns the number of milliseconds since Jan 1, 1970 (useful for converting C# dates to JS dates)  
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static double UnixTicks(this DateTime dt)
        {
            DateTime d1 = new DateTime(1970, 1, 1);
            DateTime d2 = dt.AddHours(8).ToUniversalTime();
            TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
            return ts.TotalMilliseconds;
        }

        /// <summary>
        /// 将毫秒值转成 C#  DateTime 类型
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static DateTime ConvertTime(this long time)
        {
            DateTime timeStamp = new DateTime(1970, 1, 1); //得到1970年的时间戳    
            long t = (time + 8 * 60 * 60) * 10000000 + timeStamp.Ticks;
            DateTime dt = new DateTime(t);
            return dt;
        }
        /// <summary>
        /// 获取格式化字符串，不带时分秒，格式："yyyy-MM-dd"
        /// </summary>
        /// <param name="dateTime"></param>
        /// <returns></returns>
        public static string ToDateString(this DateTime? dateTime)
        {
            if (!dateTime.HasValue)
            {
                return string.Empty;
            }

            return dateTime.Value.ToDateString();
        }
        public static string ToDateString(this DateTime dateTime)
        {
            return dateTime.ToString("yyyy-MM-dd");
        }
    }
}
