首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对一天中的多次进行倒计时

对一天中的多次进行倒计时
EN

Stack Overflow用户
提问于 2016-03-30 21:57:46
回答 1查看 69关注 0票数 0

当前代码:

代码语言:javascript
复制
        while (true)
        {
            // Gets current time
            DateTime farD = DateTime.Now;

            //Gets the departure time
            DateTime s = DateTime.Now;
            TimeSpan ts = new TimeSpan(15, 30, 0);
            s = s.Date + ts;

            // Countdown to departure.
            TimeSpan apa = s-farD;

            //Writes time left and clears console. With a 1 second interval.
            Console.Clear();
            Console.WriteLine("{0}:{1}:{2} Till färjan går",apa.Hours,apa.Minutes,apa.Seconds);
            Thread.Sleep(1000);

        }

    }
}

}

我的目标是,每天在渡轮离开的特定时间进行倒计时。问题是,渡轮每天都有50+~出发时间,使用这种倒计时解决方案会变得非常混乱。

那么问题来了:有没有一种更快的方法来进行倒计时,而不是依赖于月份/年份的日期?(稍后将使用DateTime.DayOfWeek控制不同的摆渡时间)

我会发布一个轮渡时间的链接,这样你就可以看到每天的时间和工作日的时间是如何不同的:Ferry departure times

我知道我还没有接近最终的解决方案,但我宁愿从正确的计算开始,对一个时间进行倒计时,这与它是哪一天,哪一月,哪一年无关。

EN

回答 1

Stack Overflow用户

发布于 2016-03-30 22:55:09

正如BugFinder所说,这不是堆栈溢出问题,但我可以给你一个提示:

创建一个List AllDepartures,您可以在其中存储所有出发时间。

并使用它:

代码语言:javascript
复制
List<DateTime> DayDepartures = AllDepartures.FindAll (
    o => o.DayOfWeek == DateTime.Now.DayOfWeek
);

这就是你今天可以获得所有出发的方法。像这样,你可以得到现在之后的出发时间,按小时排序:

代码语言:javascript
复制
List<DateTime> NextHourDepartures = DayDepartures.FindAll (
    o => o.Hour >= DateTime.Now.Hour
).OrderBy(o => o.Hour).ToList();

您可以获得当前小时的下一次出发,按时间排序,如下所示:

代码语言:javascript
复制
List<DateTime> NextMinuteDepartures = NextHourDepartures.FindAll(
    o => o == NextHourDepartures[0]
).FindAll (
    o => o.Minute >= DateTime.Now.Minute
).OrderBy(o=>o.Minute).ToList();

然后你下一次出发的时间是:

代码语言:javascript
复制
DateTime nextDeparture = NextMinuteDepartures [0];

希望这能有所帮助,但下次试着更好地表达你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36311038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档