恭喜,你发布的帖子
发布于 2025-03-02 09:49:51
2楼
这个可以自己写函数处理时间字符串
我做个案例如下
第一步:定义变量
第二步:定义全局脚本
1、添加全局脚本IsLeapYear来判断闰年
2、添加全局脚本MinuteAdd来处理时间字符串里分钟的加减
第三步:测试结果
1、画面如下,按钮写测试脚本如下
2、测试时间加减
脚本代码
====================IsLeapYear===================
BOOL IsLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
====================MinuteAdd===================
#include "apdefap.h"
void MinuteAdd(const char *timeInput, int add, char *timeOutput) {
int year, month, day, hour, minute, second, leap;
const int days_in_month[2][12] = {
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, // 平年
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} // 闰年
};
sscanf(timeInput, "%d/%d/%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
minute += add;
while (minute >= 60) {
minute -= 60;
hour++;
if (hour >= 24) {
hour = 0;
day++;
leap = IsLeapYear(year);
if (day > days_in_month[leap][month - 1]) {
day = 1;
month++;
if (month > 12) {
month = 1;
year++;
}
}
}
}
while (minute < 0) {
minute += 60;
hour--;
if (hour < 0) {
hour = 23;
day--;
if (day < 1) {
month--;
if (month < 1) {
month = 12;
year--;
}
leap = IsLeapYear(year);
day = days_in_month[leap][month - 1];
}
}
}
sprintf(timeOutput, "%d/%d/%d %d:%d:%d", year, month, day, hour, minute, second);
}
====================按钮===================
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char timeOutput[20];
MinuteAdd(GetTagChar("TimeString"), GetTagSWord("TimeAdd"), timeOutput);
SetTagChar("TimeResult", timeOutput);
}
请填写推广理由:
分享
只看
楼主