我写了一个游戏的速度,绕过了一个特定的时间。游戏让你等5分钟。它首先查看系统时间,当计时器(5分钟)完成时,它会再次比较系统时间并检查延迟是否为5分钟。
游戏的伪代码:
var t = GetSystemTime();
WaitMinutes(5);
if (GetSystemTime() - t != 5000)
{
Error;
}
我手动绕过它:
等到游戏等了1分钟,这样剩下4分钟的等待时间。准确地改变系统时钟+ 4分钟。
然后使用CE或我的工具快速进行游戏。
但是,我想以编程方式执行此操作,而且我的工作方式似乎不够准确。
GetLocalTime(systimecurr);
wmin := systimecurr.wMinute + iWaitingTime;
whour := systimecurr.wHour;
wday := systimecurr.wDay;
wsecs := systimecurr.wSecond + iWaitingTimeSeconds;
if wsecs >= 60 then
begin
wsecs := wsecs mod 60;
wmin := wmin + 1;
end;
if wmin >= 60 then
begin
wmin := wmin mod 60;
whour := whour + 1;
if whour >= 24 then
begin
wday := wday + 1;
end;
end;
SetDateTime(systimecurr.wYear, systimecurr.wMonth, wday, wHour,
wmin, wsecs, systimecurr.wMilliseconds);
我知道这可能不准确,但我实际上并不知道如何完美地完成它。
再次说明:我需要将时间(例如5分钟)添加到系统时钟中,然后恰好将其检索到的偏移量!
感谢您的帮助!
答案 0 :(得分:1)
好吧,我让它上班了。小代码之间实际上有很长的时间:D
QueryPerformanceCounter解决了它!
这里有正确的代码:
$this->datatables
->select("id, date, reference_no, biller, customer, sale_status, grand_total, paid, (grand_total-paid) as balance, payment_status")
->from('sales')
->where('due_date <=', date('Y-m-d'))
->where('payment_status =', 'pending')
->where('payment_status =', 'partial');