Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
C# 统一倒计时7天并重置_C#_Unity3d_Timer - Fatal编程技术网

C# 统一倒计时7天并重置

C# 统一倒计时7天并重置,c#,unity3d,timer,C#,Unity3d,Timer,我试图在Unity C#中进行实时7天倒计时,但不知道如何做到这一点 我希望能够得到HH:MM:SS 到目前为止,我有: public UILabel timerLabel; public float myTimer = 3000.0f; void Update () { if(myTimer>0) { myTimer -= Time.deltaTime; //int days = Mathf.FloorToInt(myTimer /

我试图在Unity C#中进行实时7天倒计时,但不知道如何做到这一点

我希望能够得到HH:MM:SS

到目前为止,我有:

public UILabel timerLabel;

public float myTimer = 3000.0f;

void Update () {    
    if(myTimer>0) {
        myTimer -= Time.deltaTime;

        //int days = Mathf.FloorToInt(myTimer / 60F);
        //int hours = Mathf.FloorToInt(myTimer / 60F);
        int minutes = Mathf.FloorToInt(myTimer / 60F);
        int seconds = Mathf.FloorToInt(myTimer - minutes * 60);

        string niceTime = string.Format("{0:00}:{1:00}:{2:00}", minutes, minutes, seconds);

        timerLabel.text= niceTime;
    }   

}
我想,当用户打开游戏时,获取当前时间(不是设备时间,而是某种世界时间),并能够设置一个标准时间来重置,比如说每个星期天的午夜

这可能吗?如果可能的话。。。怎么做

感谢您的帮助,并提前表示感谢:-)

#######编辑 好的,我试过Chris Mills Price的解决方案,如下所示:

public UILabel timerLabel;

DateTime startTime = DateTime.UtcNow;
DateTime endTime = DateTime.UtcNow;

void Start(){
    worldTime = DateTime.UtcNow;
    startTime = Convert.ToDateTime("08/31/2015 00:00:01");
    endTime = startTime.AddDays(7);
}

void Update () {    
    TimeSpan timeRemaining = endTime-startTime;

    int hours   = (int) timeRemaining.TotalHours; // truncate partial hours
    int minutes = timeRemaining.Minutes;
    int seconds = timeRemaining.Seconds;

    string niceTime = string.Format("{0:00}:{1:00}:{2:00}", hours, minutes, seconds);

    timerLabel.text= niceTime;
}
我不能让它做我想做的。我得到的只是剩下的时间:7.00:00:00

我的开始时间似乎还可以,结束时间也可以。我错过了什么


希望得到帮助:-)

正如B建议的那样,
DateTime.UtcNow
很可能就是您想要的

还提供了许多方法来帮助进行日期计算,这使这是一项非常简单的任务

在您的情况下,假设您有:

DateTime startTime = DateTime.UtcNow;
然后,您可以在一周后使用以下方法计算该值:

DateTime endTime = startTime.AddDays(7);
要计算HH:MM:SS值,请从另一个值中减去一个值以获得a,并使用
TimeSpan
TotalHours/Minutes/Seconds属性

TimeSpan timeRemaining = endTime-startTime;

int hours   = (int) timeRemaining.TotalHours; // truncate partial hours
int minutes = timeRemaining.Minutes;
int seconds = timeRemaining.Seconds;

尝试
DateTime.UtcNow
而不是
starttime

TimeSpan timeRemaining = endTime-DateTime.UtcNow;

“那个设备独立吗?”曼莎,读链接。UTC=协调世界时。是的。你想要
totalTimeSpentInWorld
还是
TotalRealWorldTimesRunnedStartedPlaying
之类的东西?我想做一个计数器,它总是倒计时7天。从星期天到星期天。我试过你的建议,正如我在编辑后的原始帖子中所描述的,但没有成功。我错过了什么?看起来你总是会得到7天,因为在你的代码中,startTime是一个固定的日期,endTime是一个固定的日期。尝试在Update()开始时计算worldTime,然后将剩余时间计算为endTime-worldTime.Ahhh,Perfekt:-)完成作业(y)