C#计算两个时间年份月份差

C#计算两个时间年份月份差

DateTime dt1 = Convert.ToDateTime("2008-8-8");

DateTime dt2 = System.DateTime.Now;

int Year = dt2.Year - dt1.Year;

int Month = (dt2.Year - dt1.Year) * 12 + (dt2.Month - dt1.Month);

 

计算两个日期的时间间隔

TimeSpan ts1=new   TimeSpan(DateTime1.Ticks);

TimeSpan ts2=new   TimeSpan(DateTime2.Ticks);

TimeSpan ts=ts1.Subtract(ts2).Duration();

dateDiff=ts.Days.ToString()+"天"

+ts.Hours.ToString()+"小时"

+ts.Minutes.ToString()+"分钟"

+ts.Seconds.ToString()+"秒";

 

TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值

下面的列表涵盖了其中的一部分:

Add:与另一个TimeSpan值相加。

Days:返回用天数计算的TimeSpan值。

Duration:获取TimeSpan的绝对值。

Hours:返回用小时计算的TimeSpan值

Milliseconds:返回用毫秒计算的TimeSpan值。

Minutes:返回用分钟计算的TimeSpan值。

Negate:返回当前实例的相反数。

Seconds:返回用秒计算的TimeSpan值。

Subtract:从中减去另一个TimeSpan值。

Ticks:返回TimeSpan值的tick数。

TotalDays:返回TimeSpan值表示的天数。

TotalHours:返回TimeSpan值表示的小时数。

TotalMilliseconds:返回TimeSpan值表示的毫秒数。

TotalMinutes:返回TimeSpan值表示的分钟数。

TotalSeconds:返回TimeSpan值表示的秒数。

 

label1.Text = "2004-1-1 15:36:05";

label2.Text = "2004-3-1 20:16:35";

 

DateTime d1 =new DateTime(2004,1,1,15,36,05);

DateTime d2 =new DateTime(2004,3,1,20,16,35);

TimeSpan d3 = d2.Subtract(d1);

label3.Text = "相差:"

+d3.Days.ToString()+"天"

+d3.Hours.ToString()+"小时"

+d3.Minutes.ToString()+"分钟"

+d3.Seconds.ToString()+"秒";

 

int interval = new TimeSpan(dtThis.Ticks - dtLast.Ticks).Days;

 

DateTime t1 = Convert.ToDateTime("2015-1-6"); 
DateTime t2 = Convert.ToDateTime("2015-1-16"); 
int day=Math.Abs(((TimeSpan)(t1 - t2)).Days); 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算两个圆的交点可以分为以下几个步骤: 1、计算两个圆心之间的距离,如果大于两圆半径之和或小于两圆半径之,则两圆不相交,直接返回空值。 2、计算两圆心连线与x轴正半轴的夹角theta1和theta2。 3、计算两圆心连线与x轴正半轴的夹角theta12。 4、计算两圆的交点坐标。 以下是 C# 代码示例: ```csharp public static List<PointF> GetIntersectionOfCircles(PointF center1, float radius1, PointF center2, float radius2) { List<PointF> intersectionPoints = new List<PointF>(); float distance = (float)Math.Sqrt(Math.Pow(center2.X - center1.X, 2) + Math.Pow(center2.Y - center1.Y, 2)); if (distance > radius1 + radius2 || distance < Math.Abs(radius1 - radius2)) { return intersectionPoints; // 两圆不相交 } float a = (float)((Math.Pow(radius1, 2) - Math.Pow(radius2, 2) + Math.Pow(distance, 2)) / (2 * distance)); float h = (float)Math.Sqrt(Math.Pow(radius1, 2) - Math.Pow(a, 2)); float cx2 = center1.X + a * (center2.X - center1.X) / distance; float cy2 = center1.Y + a * (center2.Y - center1.Y) / distance; PointF intersection1 = new PointF( (float)(cx2 + h * (center2.Y - center1.Y) / distance), (float)(cy2 - h * (center2.X - center1.X) / distance) ); PointF intersection2 = new PointF( (float)(cx2 - h * (center2.Y - center1.Y) / distance), (float)(cy2 + h * (center2.X - center1.X) / distance) ); intersectionPoints.Add(intersection1); intersectionPoints.Add(intersection2); return intersectionPoints; } ``` 其中,参数`center1`和`radius1`表示第一个圆的圆心和半径,参数`center2`和`radius2`表示第二个圆的圆心和半径,返回值为两个圆的交点坐标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值