2012-09-01 34 views
0

我有一个网站,我想要在18:00和06:00(7PM和6AM)之间更改背景。我曾尝试使用DateTime一个解决方案,但我不能得到它的工作:在某些时间段之间更改背景图片

protected void Page_Load(object sender, EventArgs e) { 
    int intTime = DateTime.Today.TimeOfDay; 

    if (intTime >= 1300 && intTime <= 0600) { 
     ImgNatPic.ImageUrl = "img/jantelov.jpg"; 
    } 
} 

谁能帮助?

+1

'TimeOfDay'是'TimeSpan'不是'int'。这甚至没有编译。 – verdesmarald

回答

4

TimeOfDay返回TimeSpan不是int。在TimeSpan你有一个小时属性,给你你需要的东西。

TimeSpan time = DateTime.Now.TimeOfDay; 

    if ((time.Hours >= 18) || (time.Hours <= 6)) 
    { 
     ImgNatPic.ImageUrl = "img/jantelov.jpg"; 
    } 
+0

由于'Today'总是在午夜,所以可能想使用'DateTime.Now'。 – verdesmarald

0

我认为你需要使用DateTime.Now.TimeOfDay;而非.Today.Today属性包含仅设置为午夜时间日期。

另外.TimeOfDay返回TimeSpan而不是int,所以你需要相应地调整你的if语句。如果您只对小时组件感兴趣,则可以使用DateTime.Now.Hour,这将返回一小时。

3

DateTime.Today.TimeOfDay返回Timespan,不是int!

实现这一目标最简单的方法是使用DateTime.Now.Hour所以它看起来像:

int time = DateTime.Now.Hour