如何在 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 让我们分别取名为 datetimepicker1 和 datetimepicker2 现在 datetimepicker1 用于 注册 日期,而 datetimepicker2 用于支付利息日期。
现在我想使用 datetimepicker
在 month change 之后计算 month为了理解清除让我们举一个例子 datetimepicker1 注册日期是 27/31/2019 并且用户已经在 2020 年 10 月 1 日支付了她的利息,即 datetimepicker2 商店价值是2020 年 10 月 1 日
现在我想要两个月的利息,27/31/2019 是 12 月 月,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