在服务中生成随机日期和时间

时间:2014-03-24 11:35:12

标签: c# wcf random service datetimepicker

我尝试使用一种可以由表单访问的服务中的方法,以便我可以使用此方法在日期时间选择器中生成随机日期。它只是不起作用,我有两个DTP被称为dtp_Current和dtp_New

这是在表格上访问的,我有两个按钮,说明之前和之后,当点击之前你猜测新生成的日期将在当前日期之前,如果你点击它之后猜测它&# 39; s将在当前生成的日期之后。我必须使用服务来做到这一点

public int RandomDate()

是我喜欢在服务中调用的方法,我将如何执行此操作,以便在单击后按钮时检查dtp_Current日期以查看dtp_New是否更大

我希望这是有道理的

摘要: 有表格和服务参考 需要服务引用以在dtp_Current中生成随机日期 然后在点击之前或之后在dtp_New中生成一个新日期 然后检查dtp_New是否大于或小于dtp_Current

3 个答案:

答案 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()是您在服务中公开的方法。希望这有用......