0

我有一个网站,我希望在 18:00 和 06:00(晚上 7 点和早上 6 点)之间更改背景。我尝试了一个解决方案DateTime,但我无法让它工作:

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

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

任何人都可以帮忙吗?

4

3 回答 3

4

TimeOfDay返回 TimeSpan 而不是 int。在TimeSpan上,您有一个 Hours 属性,可以为您提供所需的内容。

    TimeSpan time = DateTime.Now.TimeOfDay; 

    if ((time.Hours >= 18) || (time.Hours <= 6)) 
    { 
        ImgNatPic.ImageUrl = "img/jantelov.jpg"; 
    } 
于 2012-09-01T12:52:28.213 回答
3

DateTime.Today.TimeOfDay返回时间跨度,而不是整数!

实现它的最简单方法是使用DateTime.Now.Hour它,它看起来像:

int time = DateTime.Now.Hour
于 2012-09-01T12:55:15.917 回答
0

我认为您需要使用DateTime.Now.TimeOfDay;而不是.Today因为该.Today属性仅包含时间设置为午夜的日期。

.TimeOfDay返回 a TimeSpannot an int,因此您需要相应地调整 if 语句。如果您只对小时组件感兴趣,您可以使用DateTime.Now.Hour将返回一个小时。

于 2012-09-01T12:54:32.357 回答