需要有关日期格式和验证的伪代码的帮助

Posted

技术标签:

【中文标题】需要有关日期格式和验证的伪代码的帮助【英文标题】:Need help with pseudo code for date format and validation 【发布时间】:2014-04-27 07:09:56 【问题描述】:

我必须为以 dd/mm/yyyy 格式接收日期的算法编写伪代码并对其进行验证,这将重复,直到用户输入“否”。 验证必须检查:

2 月的闰年检查 1-12 范围内的月份 天在 1-31 的范围内,并根据各自的天数 月

【问题讨论】:

你尝试过什么,你在哪里卡住了?此外,这可能不适合数学部分。 【参考方案1】:
Declare checkDate
LeapYear is boolean
Year is integer
Month is integer
Day is integer
flag is integer
input Date
Year = val(mid(Date, 7, 4))
Month = val(mid(Date, 4, 2))
Day = val(mid(Date, 1, 2))
flag = 0
if Year Mod 4 = 0 then
 LeapYear = True
end If
if Month < 13 then
if Month = 1 Or Month = 3 Or Month = 5
Or Month = 7 Or Month = 8 Or Month = 10
Or Month = 12 then
 if Day <= 31 then
 flag = 0
 else
 flag = 1
 end if
 else
 if Month = 4 Or Month = 6 Or Month =
9 Or Month = 11 then
 if Day <= 30 Then
 flag = 0
 else
 flag = 1
 end if
 end if
 end if
else
 flag = 1
end if
if LeapYear = True then
 if Month = 2 then
 if Day <= 29 then
 flag = 0
 else
 flag = 1
 end if
 else
 if Month = 2 then
 if Date <= 28 then
 flag = 0
 else
 flag = 1
 end if
 end if
 end if
end if
if flag = 0 then
Print "date is correct"
else
Print "date is incorrect"
end if'                                                                                                                                                

【讨论】:

【参考方案2】:

这是非常伪代码......让'oops'意味着'返回错误'

input date
day = int(date[0,1])
month = int(date[2,3])
year = int(date[4,7])
if month > 12 or month < 01:
   oops
elif month == 1,3,5,7,8,10,12:
   if day > 31 or day < 01:
      oops
elif month == 4,6,9,11
   if day > 30 or day < 01:
      oops
elif month == 2
   if year % 4 == 0 or (year % 100 != 0 and year % 1000 == 0) #check for leap year
      if day > 29 or day < 01:
         oops
   else
      if day > 28 or day < 01:
         oops

【讨论】:

@naslundx 我不知道从哪里开始,所以我没有尝试过。 @ian 我不明白“oops”部分和 int(date[0,1]), int(date[2,3]), int(date[4,7])

以上是关于需要有关日期格式和验证的伪代码的帮助的主要内容,如果未能解决你的问题,请参考以下文章

Talend 日期格式错误

验证日期输入格式

正则表达式日期验证格式

JS中比较2个日期大小验证 日期格式yy-mm-dd

在 Javascript 中验证日期时间

ASP.NET MVC、Telerik Kendo、jQuery 验证中的非标准日期格式