如何在 c#.net 中使用 datetimepicker 获取月份更改后的月份数

Posted

技术标签:

【中文标题】如何在 c#.net 中使用 datetimepicker 获取月份更改后的月份数【英文标题】:How to get number of month after the month change using datatimepicker in c#.net 【发布时间】:2019-12-28 04:22:14 【问题描述】:

我有两个 datetimepicker 让我们分别取名为 datetimepicker1datetimepicker2 现在 datetimepicker1 用于 注册 日期,而 datetimepicker2 用于支付利息日期。

现在我想使用 datetimepicker

month change 之后计算 month

为了理解清除让我们举一个例子 datetimepicker1 注册日期是 27/31/2019 并且用户已经在 2020 年 10 月 1 日支付了她的利息,即 datetimepicker2 商店价值是2020 年 10 月 1 日

现在我想要两个月的利息,27/31/201912 月 月,10/01/2020一月月。

那么如何在文本框中显示值 2

这是我的尝试代码

textbox.Text = Convert.ToString(Convert.ToInt32((datetimepicker2.Value - datetimepicker1.Value).TotalDays) / 31);

现在根据这段代码,我在 datetimepicker2 选择 27/01/2020 或大于我不想要的之后 1 个月。

图片显示了调试代码和日期格式。

【问题讨论】:

你的减法是倒数。应该是:datetimepicker2.Value - datetimepicker1.Value @jdweng 抱歉,我编辑了问题,请查看。 这是什么日历27/31/2019 27/31/2019 不是任何日历上的有效日期。 利息是如何计算的?利息的计算因国家而异。在大多数国家,一年只有 360 个银行工作日(12 个月平均分配)。要获得月末,您通常会使用 AddMonth 然后减去一天,这样您就不必计算一个月的天数。 【参考方案1】:

我建议对月份名称及其订单号进行枚举结构,并在 switch 情况下,即如果 1 月份注册的 datetimepicker 将返回 1,与 may 将返回 5 相同,那么您可以在此处进行减法...希望你明白我的意思...

【讨论】:

【参考方案2】:

您可以简单地使用Timespan 进行计算。

另外,当您计算月差时,而不是在计算中随机添加 31 天。您可以检查模值,如果它大于零,您可以将 +1 添加到月份。

 int month = TimeSpan.Days/31;
 if(TimeSpan.Days%31 >0 ) month +=1;

【讨论】:

以上是关于如何在 c#.net 中使用 datetimepicker 获取月份更改后的月份数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ColdFusion 中使用 C#.NET 程序集?

如何使用 .NET C/C++/C# 检测该视频是不是在播放器中打开?

如何在 C#/.Net 中使用 Forge 将 .SVF 文件转换为 .GLTF

如何使用 C#/.NET 检索打印机图标 [重复]

C#/VB.NET 如何在Excel中使用条件格式设置交替行颜色

如何在 c#.net 中使用 datetimepicker 获取月份更改后的月份数