我尝试使用一种可以由表单访问的服务中的方法,以便我可以使用此方法在日期时间选择器中生成随机日期。它只是不起作用,我有两个DTP被称为dtp_Current和dtp_New
这是在表格上访问的,我有两个按钮,说明之前和之后,当点击之前你猜测新生成的日期将在当前日期之前,如果你点击它之后猜测它&# 39; s将在当前生成的日期之后。我必须使用服务来做到这一点
public int RandomDate()
是我喜欢在服务中调用的方法,我将如何执行此操作,以便在单击后按钮时检查dtp_Current日期以查看dtp_New是否更大
我希望这是有道理的
摘要: 有表格和服务参考 需要服务引用以在dtp_Current中生成随机日期 然后在点击之前或之后在dtp_New中生成一个新日期 然后检查dtp_New是否大于或小于dtp_Current
答案 0 :(得分:2)
要在此处生成随机日期,请输入c#代码:
DateTime RandomDay()
{
DateTime start = new DateTime(1900, 1, 1);
Random gen = new Random();
int range = (DateTime.Today - start).Days;
return start.AddDays(gen.Next(range));
}
答案 1 :(得分:0)
您可以使用random.Next
使用时间(以毫秒为单位)。
答案 2 :(得分:0)
在我看来,这里的主要问题只是创建一个生成随机日期的方法。
这样做的一种方法是保留对您获得的日期的某种程度的控制,即生成日期,月份和年份的随机数。一年,你可以这样做:
Random r = new Random();
int randomYear = r.Next(1990, 2015); // random year between 1990 and 2014
int randomMonthNr = r.Next(1,13);
int maxDayNr = DateTime.DaysInMonth(randomYear, randomMonthNr);
int randomDayNr = r.Next(1, (maxDayNr + 1));
为日期和月份执行类似的操作,并在以下位置使用:
var randomDate = new DateTime(randomYear, randomMonthNr, randomDayNr);
(注意:首先生成月份,然后生成find out the number of days in the resulting month,并在生成日期数字时将其用作上限,因此2月份最多可获得28或29,等等)。
创建日期后,您只需使用<=
和>=
(包括或不包含=
)对其进行比较。如果您需要在服务的上下文中对它们进行比较,只需将DateTime
作为参数发送到服务,并在那里进行比较。
更新:正在连接服务
在客户端的Visual Studio项目下打开该文件夹。右键单击服务引用,然后选择View in Object Browser
。在那里,您应该看到服务中的类型和命名空间的层次结构。寻找类似YourServiceNameClient
之类的类型。这将是一个自动生成的类型,可用于连接到您的服务(Client
将仅附加到服务引用已标识的类型)。
使用它像:
var yourServiceReference = new YourServiceNameClient();
var yourGeneratedDate = yourServiceReference.GetNewRandomDate();
这显然假定GetNewRandomDate()
是您在服务中公开的方法。希望这有用......