openedge - 在填写字段中添加 x 分钟的代码
问题描述
我是编程和进步的初学者,第一次在 StackOverflow 上发帖,希望我在正确的地方发帖!
我有一个填写字段,我在其中输入时间(hh:mm),字符格式。我还有两个箭头,一个指向前方,一个指向后方,我希望它们在推动时分别加/减 20 分钟。
为此编写代码的好方法是什么?将当前时间值转换为整数和午夜后的秒数,然后添加/减去 1200 秒?如何将结果恢复为 hh:mm 格式以显示在填充中?
非常感谢任何帮助!/艾伦
解决方案
我认为这将满足您的需求。让箭头按钮上的ON CHOOSE
触发器运行 changeMins 过程。从您的填写中传递字符时间字符串和“加”或“减”。输出值将是新调整的时间字符串。然后,您可以将填充的屏幕值设置为该输出值。
DEFINE VARIABLE cTime AS CHARACTER NO-UNDO.
cTime = "12:45".
RUN changeMins (INPUT-OUTPUT cTime, INPUT "Add").
MESSAGE cTime VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
PROCEDURE changeMins:
DEFINE INPUT-OUTPUT PARAMETER pcTime AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER pcAction AS CHARACTER NO-UNDO.
DEFINE VARIABLE iHr AS INTEGER NO-UNDO.
DEFINE VARIABLE iMn AS INTEGER NO-UNDO.
/* Split the time string into hours and minutes */
ASSIGN
iHr = INTEGER(ENTRY(1, pcTime, ":"))
iMn = INTEGER(ENTRY(2, pcTime, ":"))
NO-ERROR.
IF ERROR-STATUS:ERROR THEN RETURN.
/* Adjust the time */
CASE pcAction:
WHEN "Add" THEN iMn = iMn + 20.
WHEN "Subtract" THEN iMn = iMn - 20.
END CASE.
/* Correct for boundaries */
IF iMn > 59 THEN
ASSIGN
iMn = iMn - 60
iHr = iHr + 1.
IF iMn < 0 THEN
ASSIGN
iMn = iMn + 60
iHr = iHr - 1.
IF iHr > 23 THEN iHr = iHr - 24.
IF iHr < 0 THEN iHr = iHr + 24.
/* Build the new time string */
pcTime = STRING(iHr, "99") + ":" + STRING(iMn, "99").
END PROCEDURE.
在此示例中,将 cTime 字符串更改为不同的时间并运行它。
推荐阅读
- css - css page-break-after:避免;不工作
- javascript - 如何使用 Jest 解决模拟函数中的外部承诺?
- python - 如何通过 Python 中的 ASCII 字符串恢复 Unicode 字符串?
- javascript - 当角度没有输入时如何将值设置为0
- php - 如何在数据库的不同列中插入多个复选框
- javascript - 需要从 Object Literal(JSON 字符串/对象)中找到键值对
- python - 循环遍历多个字典项以使用小波分析去噪组合
- javascript - 有没有办法让 JavaScript 记住随机选择的数组的哪一部分?
- python - 如何获取源自动画层的属性动画曲线
- visual-studio-code - 关于片段的少量信息