gpt4 book ai didi

vb.net - 如何在 Visual Basic 中将文本框中的字符串检查为整数?

转载 作者:行者123 更新时间:2023-12-02 08:57:59 24 4
gpt4 key购买 nike

我有 3 个文本框(日、月、年),我想检查输入是否是例如day 必须从 1 到 31,依此类推。

我的代码是:

If InputDan.Text < "1" Or InputDan > "31" Then Warning.Text = "Not a valid day input." Else Warning.Text = ""

此外,我的日和月输入限制为 2 个字符,年份输入限制为 4 个字符。它适用于 10 到 31 之间的数字,并且当输入为 0 或 32 等时,它会正确地发出警告消息。

问题来了...

当我输入 4 到 9 的数字时,它会显示一条警告消息,后来我发现程序将输入一个字符后的空格视为 0。因此,如果我输入 4,程序会将其读取为 40,依此类推。

我可以通过将 String 输入转换为 Int 来解决这个问题吗?

最佳答案

您需要先将数字解析为整数,然后才能比较它们,否则 >"11" 将按字母顺序比较它们,而不是按数字顺序。

Dim day As Integer
Dim valid As Boolean = Int32.TryParse(InputDan.Text, day)

现在您知道该输入的数字是否正确,如果不正确,您可以显示警告。

我建议采用不同的方法来检查输入是否是正确的日期,因为您必须考虑该月的天数(还有闰年、不同的日历等)。所以使用当前的culture's calendar并以这种方式查看给定月份的天数是否正确:

Dim daysInMonth = CultureInfo.CurrentCulture.Calendar.GetDaysInMonth(year, month)
If day > daysInMonth OrElse day < 1 Then
' show warning '
End If

(假设您已经使用 Int32.TryParse 检查了年份和月份部分)

关于vb.net - 如何在 Visual Basic 中将文本框中的字符串检查为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13413142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com