C#计算两个时间差(精确到年月周日)

 class Program
    {
        static void Main(string[] args)
        {
            DateTime date1 = new DateTime(2020,7,9);
            DateTime date2 = new DateTime(2022,7,2);

            TimeInterval(date1,date2);

        }

        private static void TimeInterval(DateTime date1, DateTime date2)
        {
            int year=0, month=0, day=0, week=0;
            //首先计算年
            year = date2.Year - date1.Year;
            /**
             * 1.如果date2的月份大于date1的月份
             * ***/
            if (date2.Month > date1.Month)
            {
                month = date2.Month - date1.Month;
            }
            /*2.若date2的月份小于date1的月份
             */
            else if (date2.Month < date1.Month) 
            {
                month = date2.Month + 12 - date1.Month;
                year--;
            }
            /*
             * 3.若date2的月份和date1的月份相等,并且date2的号数小于date1的号数
             */
            else if (date2.Month == date1.Month && date2.Day<date1.Day)
            {
                month = date2.Month + 12 - date1.Month;
                year--;
            }

            if (date2.Day > date1.Day)
            {
                day = date2.Day - date1.Day;
            }
            else if (date2.Day<date1.Day)
            {

                day = DateTime.DaysInMonth(date2.Year, date2.Month - 1) + date2.Day - date1.Day;
                month--;
            }

            week = day / 7;
            day = day % 7;

            Console.WriteLine(date1.ToString() +" 和 "+date2.ToString()+" 间隔\n "+year+"年"+month+"月"+week+"周"+day+"天");

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值