计算当月的剩余天数

时间:2017-08-15 01:38:31

标签: c# winforms

我想知道如何计算当月的剩余天数,例如2017年2月15日至2017年2月28日,而不使用2017年2月28日的datetimepicker。

以下是我减去2 datetimepicker的代码:

 DateTime startDate =
     (DateTime)dateTimePicker2.Value;

 DateTime endDate =
     (DateTime)dateTimePicker1.Value;

 TimeSpan ts = endDate.Subtract(startDate);

 textBox10.Text = ts.Days.ToString();`

3 个答案:

答案 0 :(得分:0)

以下是您需要完成的步骤:

  • 取你当前的日期
  • 使用DateTime.AddMonths()生成距您当前日期一个月的新日期
  • 创建一个新日期,当天使用1,以及您刚刚制定的未来日期的月份和年份
  • 从未来日期减去您当前的日期,这将为您提供包含天数差异的Timespan

您可以使用密切相关的问题Calculate difference between two dates (number of days)?作为指南。

答案 1 :(得分:0)

以下是一个示例,但您可以使用Value中的DateTimePicker属性。 DateTime.DaysInMonth(int year, int month)是一种有用的方法。

DateTime beginDate = new DateTime(2017, 2, 15);
var daysLeft = DateTime.DaysInMonth(beginDate.Year, beginDate.Month) - beginDate.Day;
Console.WriteLine("days from Feb 15 to Feb 28: {0}", daysLeft);

输出:

  2月15日至2月28日期间的天数:13

答案 2 :(得分:-1)

您可以尝试:

lframe1 = pd.concat([frame]*1000)
lframe2 = pd.concat([frame]*1000)

%timeit lframe1['c'] = lframe1.apply(lambda row: row.b.find(row.a), axis=1)
# 10 loops, best of 3: 77.7 ms per loop

%timeit lframe2['c'] = [b.find(a) for a, b in zip(lframe2.a, lframe2.b)]
# 1000 loops, best of 3: 1.4 ms per loop

lframe1.c.eq(lframe2.c).all()
# True