Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何检测当前时间是否在15.31到15.45之间_Asp.net_Datetime - Fatal编程技术网

Asp.net 如何检测当前时间是否在15.31到15.45之间

Asp.net 如何检测当前时间是否在15.31到15.45之间,asp.net,datetime,Asp.net,Datetime,内网框架2 如何更好的使用这个和容易我有很多次 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.Html

内网框架2

如何更好的使用这个和容易我有很多次

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string timenow = DateTime.Now.ToString("T");
        Label1.Text = DateTime.Now.ToString("T");
        Label3.Text = DateTime.Now.ToString("D");
        Label2.Text = getTimeZone(timenow);
    }

    //hh:mm:ss
    protected string getTimeZone(string time)
    {
        string[] e = time.Split(':');
        int h = Convert.ToInt16(e[0]);
        int m = Convert.ToInt16(e[1]);
        int s = Convert.ToInt16(e[2]);

        if ((h == 15) && (m >= 1) && (m <= 30) && (s <= 59))
        {
            return "15.01 - 15.30";
        }
        if ((h == 15) && (m >= 31) && (m <= 45) && (s <= 59))
        {
            return "15.31 - 15.45";
        }
        if ((h == 15) && (m >= 46) && (m == 0) && (s <= 59))
        {
            return "15.31 - 15.45";
        }

        return time;
    }
}
使用系统;
使用系统数据;
使用系统配置;
使用System.Web;
使用System.Web.Security;
使用System.Web.UI;
使用System.Web.UI.WebControl;
使用System.Web.UI.WebControl.WebParts;
使用System.Web.UI.HTMLControl;
公共部分类\u默认值:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
字符串timenow=DateTime.Now.ToString(“T”);
Label1.Text=DateTime.Now.ToString(“T”);
Label3.Text=DateTime.Now.ToString(“D”);
Label2.Text=getTimeZone(timenow);
}
//hh:mm:ss
受保护的字符串getTimeZone(字符串时间)
{
字符串[]e=time.Split(“:”);
int h=转换为16(e[0]);
int m=转换为16(e[1]);
int s=转换为16(e[2]);

如果((h==15)和((m>=1)和((m为什么直接使用字符串而不是DateTime),那么可以使用DateTime.TimeofDay

好的,我将从page类中取出getTimeZone并将其放在一个util类中作为开始…

DateTime now=DateTime.now;
DateTime now = DateTime.Now;
DateTime start = new DateTime(now.Year, now.Month, now.Day, 15, 31, 0);
DateTime end = new DateTime(now.Year, now.Month, now.Day, 15, 45, 0);

if (now >= start && now <= end)
    Console.WriteLine("We have a go!");
DateTime开始=新的日期时间(now.Year,now.Month,now.Day,15,31,0); DateTime end=新的日期时间(now.Year,now.Month,now.Day,15,45,0);
如果(now>=start&&now,您可以将字符串解析为DateTime对象并进行比较。
您还可以使用string.CompareTo()直接比较字符串。

类似这样的内容如何:

protected void Page_Load()
{
    DateTime timenow = DateTime.Now;
    Label2.Text = getTimeZone(timenow);
}

//hh:mm:ss
protected string getTimeZone(DateTime time)
{
    if (time.Hour == 15 && time.Minute >= 1 && time.Minute <= 30)
        return "15.01 - 15.30";
    if (time.Hour == 15 && time.Minute >= 31 && time.Minute <= 45)
        return "15.31 - 15.45";
    return "";
}
受保护的无效页面\u加载()
{
DateTime timenow=DateTime.Now;
Label2.Text=getTimeZone(timenow);
}
//hh:mm:ss
受保护的字符串getTimeZone(日期时间)
{
如果(time.Hour==15&&time.Minute>=1&&time.Minute=31&&time.Minute
受保护的无效页面加载(对象发送方,事件参数e)
{
DateTime now=DateTime.now;
Label1.Text=now.ToString(“T”);
Label3.Text=now.ToString(“D”);

如果(now.Hour==15&&now.Minute>=1&&now.Minute=31&&now.Minute如果所有小时都采用相同的模式,则这将起作用:

protected void Page_Load()
{
    DateTime timenow = DateTime.Now;
    Label1.Text = timenow.ToString("T");        
    Label3.Text = timenow.ToString("D");        
    Label2.Text = getTimeZone(timenow);         
}

//hh:mm:ss
protected string getTimeZone(DateTime time)
{
    if (time.Minute >= 1 && time.Minute <= 30)
        return String.Format("{0:00}.01 - {0:00}.30", time.Hour);
    if (time.Minute >= 31 && time.Minute <= 45)
        return String.Format("{0:00}.31 - {0:00}.45", time.Hour);
    if (time.Minute >= 46)
        return String.Format("{0:00}.46 - {1:00}.00", time.Hour, (time.Hour < 23) ?  time.Hour+1 : 0);
    if (time.Minute == 00)
        return String.Format("{0:00}.46 - {1:00}.00", (time.Hour > 0) ? time.Hour-1 : 23, time.Hour);
    return "";
}
受保护的无效页面\u加载()
{
DateTime timenow=DateTime.Now;
Label1.Text=timenow.ToString(“T”);
Label3.Text=timenow.ToString(“D”);
Label2.Text=getTimeZone(timenow);
}
//hh:mm:ss
受保护的字符串getTimeZone(日期时间)
{
如果(time.Minute>=1&&time.Minute=31&&time.Minute=46)
返回String.Format(“{0:00}.46-{1:00}.00”,time.Hour,(time.Hour<23)?time.Hour+1:0);
如果(time.Minute==00)
返回String.Format(“{0:00}.46-{1:00}.00”,(time.Hour>0)?time.Hour-1:23,time.Hour);
返回“”;
}

首先让它开始工作,然后考虑在其他场景中把它暴露在一个有用的类中。好的,听起来它已经工作了,他只是想做一个BETTWE的方式。他说他已经使用过很多次了,所以我认为这段代码现在已经满了。把它放在UTIL类中会对他有帮助。efactoring.甚至不需要这样做,因为他从DateTime对象开始调用ToString…我不理解最后一个if的逻辑…那永远不会发生,因为(m>=46)和(m==0)永远不会是真的…应该是if((h==15)和(m>=46))|(h==16)和(m==0)){返回“15.46-16.00”}你不需要检查(s)如果您希望分钟跨度的模式适用于一天中的所有小时,这将导致大量If语句……不是真的,您只需要进入时间跨度等,或者使用自己的解决方案。重点是您可以直接比较日期时间,您不应该将它们解析为字符串,然后将字符串解析为整数我同意你不应该通过字符串解析来处理int和fiddle。你的答案很有道理。我提供了一个答案,它直接从DateTime对象中取出不同的部分,并对照它的分钟部分进行检查。这样,它在一天中的任何一个小时都有效。当然,这只有在所有小时的分钟模式相同时才有效。。。
protected void Page_Load()
{
    DateTime timenow = DateTime.Now;
    Label1.Text = timenow.ToString("T");        
    Label3.Text = timenow.ToString("D");        
    Label2.Text = getTimeZone(timenow);         
}

//hh:mm:ss
protected string getTimeZone(DateTime time)
{
    if (time.Minute >= 1 && time.Minute <= 30)
        return String.Format("{0:00}.01 - {0:00}.30", time.Hour);
    if (time.Minute >= 31 && time.Minute <= 45)
        return String.Format("{0:00}.31 - {0:00}.45", time.Hour);
    if (time.Minute >= 46)
        return String.Format("{0:00}.46 - {1:00}.00", time.Hour, (time.Hour < 23) ?  time.Hour+1 : 0);
    if (time.Minute == 00)
        return String.Format("{0:00}.46 - {1:00}.00", (time.Hour > 0) ? time.Hour-1 : 23, time.Hour);
    return "";
}