我在开发图书馆管理系统时遇到了严重的情况,如果有人返回一本书,就有一个函数将图书详细信息插入到以系统日期为返回日期的数据库中,然后比较借来的日期和返回的日期,如果有的话,我可以计算罚款,但事情是,通过将系统日期更改为高于当前日期的前一日期,任何人都可以在不影响罚款的情况下归还图书,因为它将系统日期插入为当前日期,而现在又发生了更改。
例子:
想想看贷款期限是7天
借入日期为2012年5月11日
返回日期20/05/2012 (认为这是今天,它作为一个系统日期)
现在有两天的延误时间(所以有罚款要计算)
如果我将系统日期更改为上一个日期,如15/05/2012,那么它将系统日期作为更改日期,这样就可以有一本不计算罚款的书返回,哪一本书必须计算罚款?
发布于 2014-07-25 07:58:40
没有办法去编程,因为你总是会得到的日期设置在个人电脑上,你的系统运行。
您可以做的是从另一个PC /服务器获取当前日期,或者在该PC中配置管理员权限,这样没有人可以更改系统的时间。
检查此选项以获得第一个选项:get ACTUAL date time and not system date time in C#
发布于 2014-07-25 08:12:24
您可以在另一台机器上设置mysql数据库,该计算机不可由未经授权的人员进行更改,然后使用mysql日期/时间函数。
例如,定义您的返回表如下:
create table book_return (book_id int, return_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP);然后你就可以利用这段时间来计算了。
了解有关mysql日期/时间函数的更多信息:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
此外,如果您必须在一台计算机上使用mysql db +您的应用程序,您可以尝试从NTP服务器获取当前时间,但这可能是过分的;) How to Query an NTP Server using C#?
发布于 2014-07-25 10:41:41
必须将数据库放在集中式系统中,该系统必须是windows应用程序或基于Web的服务器。因此,尝试使用服务器时间。为列/字段创建默认值。
创建表BookDetails (BookId int,ReturnedTime datetime默认getdate())
https://stackoverflow.com/questions/24950697
复制相似问题