C# 如何在c语言中获取通用日期时间#

C# 如何在c语言中获取通用日期时间#,c#,mysql,sql,date,datetime,C#,Mysql,Sql,Date,Datetime,我在开发图书馆管理系统时遇到了严重的情况,如果有人归还一本书,有一个函数可以将书的详细信息插入数据库,该数据库以系统日期作为归还日期,然后比较借阅日期和归还日期,我可以计算罚款(如果有),但问题是,通过将系统日期更改为当前日期之上的前一个日期,任何人都可以在不影响罚款的情况下归还图书,因为它将系统日期插入为当前日期,并且现在已更改 例如: 那么贷款期限是7天吗 借款日期为2012年5月11日 返回日期2012年5月20日(假设今天是系统日期) 现在有2天的延迟(因此要计算罚款) 如果我将系统日期

我在开发图书馆管理系统时遇到了严重的情况,如果有人归还一本书,有一个函数可以将书的详细信息插入数据库,该数据库以系统日期作为归还日期,然后比较借阅日期和归还日期,我可以计算罚款(如果有),但问题是,通过将系统日期更改为当前日期之上的前一个日期,任何人都可以在不影响罚款的情况下归还图书,因为它将系统日期插入为当前日期,并且现在已更改

例如:

那么贷款期限是7天吗

借款日期为2012年5月11日

返回日期2012年5月20日(假设今天是系统日期)

现在有2天的延迟(因此要计算罚款)


如果我将系统日期更改为前一个日期,如2012年5月15日,那么它会将系统日期作为更改日期,这样就可以在不计算罚款的情况下还书,而必须计算罚款?

无法通过编程实现,因为您将始终在系统运行的pc上设置日期

您可以从另一台pc/服务器获取当前日期,或者在该pc/服务器中配置管理员权限,以便任何人都无法更改系统时间


检查第一个选项:

您可以在另一台机器上设置mysql数据库,未经授权的人无法对其进行更改,然后使用mysql日期/时间函数

定义您的返回表,例如:

create table book_return (book_id int, return_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
然后你可以利用这段时间来计算

阅读有关mysql日期/时间函数的更多信息:

另外-如果您必须在一台计算机上安装mysql db+应用程序,您可以尝试从NTP服务器获取当前时间,但这可能有些过分;)

您必须将数据库置于集中系统中,该系统必须是windows应用程序服务器或基于Web的服务器。。因此,尝试使用服务器时间。为列/字段创建默认值

创建表BookDetails(BookId int,ReturnedTime-datetime-DEFAULT-getdate())


您可以自己托管服务器,在这种情况下,您可以控制时钟,但您知道,无论系统是否指示,职员始终可以选择不向客户收费……最终用户是否能够更改系统和/或数据库服务器上的日期?是否认为CMOS battary已经死亡?然后突然更改系统日期并将非法值插入数据库?我没有使用数据库的当前日期,因为如果我更改数据库服务器(美国为8月),服务器时间也会更改?如果将服务器从一个时区移动到另一个时区,当然服务器时间会更改几个小时,但您可以检测到并进行补偿。