C# 两个日期相减得到月数和天数和时and计算 日期减去月之后的日期

【得到相差的 月份数】

DateTime startDate = DateTime.Parse("2006-12-1");
DateTime endDate = DateTime.Parse("2006-02-25");   //结束时间-起始时间
int totalMonth = endDate.Year * 12 + endDate.Month - startDate.Year * 12 - startDate.Month;

  

【得到相差的 天数 和 小时】

DateTime t1 = DateTime.Parse("2006-12-1");
DateTime t2 = DateTime.Parse("2006-02-25");
System.TimeSpan ts = t2 - t1;
int days = ts.Days;     //天
int  Hours= ts.Hours;  //小时
TextBox1.Text = (days / 30).ToString();

【得到天、时、分、秒差(各为小数)】  

DateTime t1 = Convert.ToDateTime("2015-01-02 12:10:9");
DateTime t2 =  Convert.ToDateTime("2015-01-03 14:11:10");
System.TimeSpan ts = t2 - t1;


ts.TotalDays    1天2小时1分1秒
ts.TotalHours   26小时1分1秒
ts.TotalMinutes  。。。。。。。。。。。 
ts.TotalSeconds  。。。。。

 

  

【计算 日期减去月之后的日期】

function aa(){
var str_dt = '2011/12/31';
var day = str_dt.substring(str_dt.lastIndexOf('/') + 1); //获取源数据的天数值,这里是31

var dt = new Date(str_dt);
var result = [];

dt.setMonth(dt.getMonth() - 10);

result.push(dt.getFullYear());

  

【计算结果日期值<源数据日期值时,说明日期值超过当月最大天数,日期值修改为当月最大天数值】

if (dt.getDate() < day) {
result.push(dt.getMonth());
dt.setDate(0);
}
else result.push(dt.getMonth() + 1);
result.push(dt.getDate());

alert(result.join('/'));
}

  



【获取当前时间所在周的第一天和最后一天】

int dayOfWeek = Convert.ToInt32(DateTime.Now.DayOfWeek); 
int daydiff = (-1) * dayOfWeek + 1; 
int dayadd = 5 - dayOfWeek; 

DateTime weekStartDate = DateTime.Now.AddDays(daydiff); 
DateTime weekEndDate = DateTime.Now.AddDays(dayadd); 
 

  

  

原文地址:https://www.cnblogs.com/wdw31210/p/2294379.html