C# 计算剩余时间

这篇具有很好参考价值的文章主要介绍了C# 计算剩余时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;

namespace 倒计时
{
    class Program
    {
        static Timer timer = new Timer();
        static DateTime endTime;
        static string fileName = "countdown.txt";

        static void Main(string[] args)
        {
            LoadCountdown(); // 读取倒计时信息

            // 设置计时器
            timer.Interval = 1000; // 每秒触发一次
            timer.Elapsed += Timer_Elapsed;
            timer.Enabled = true;

            Console.WriteLine("倒计时开始,将在{0}结束。", endTime);

            Console.ReadLine();
        }

        static void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            TimeSpan duration = endTime - DateTime.Now; // 计算时间差

            if (duration.TotalSeconds <= 0) // 时间到了
            {
                timer.Enabled = false; // 停止计时器
                Console.WriteLine("时间到了!");

                SaveCountdown(DateTime.MinValue); // 清除倒计时信息
            }
            else // 显示剩余时间
            {
                Console.WriteLine("剩余时间:{0}小时{1}分钟{2}秒", (int)duration.TotalHours, (int)duration.TotalMinutes % 60, (int)duration.TotalSeconds % 60);

                SaveCountdown(endTime); // 保存倒计时信息
            }
        }

        static void LoadCountdown()
        {
            if (File.Exists(fileName)) // 文件存在
            {
                string content = File.ReadAllText(fileName); // 读取文件内容

                if (!string.IsNullOrEmpty(content)) // 文件内容不为空
                {
                    DateTime savedTime = DateTime.Parse(content); // 解析保存的时间
                    TimeSpan duration = savedTime - DateTime.Now; // 计算时间差

                    if (duration.TotalSeconds > 0) // 时间还没到
                    {
                        endTime = savedTime; // 恢复结束时间
                        return;
                    }
                }
            }

            // 文件不存在或者时间已经到了,重新开始倒计时
            DateTime startTime = DateTime.Now;
            endTime = startTime.AddMinutes(20);
        }

        static void SaveCountdown(DateTime time)
        {
            File.WriteAllText(fileName, time.ToString()); // 保存时间到文件
        }
    }
}

文章来源地址https://www.toymoban.com/news/detail-737095.html

到了这里,关于C# 计算剩余时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • asp.net教务管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计

    一、源码特点         asp.net 教务管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net教务管理系统 应用技术:asp.net c#+sqlserver 开发工具:vs2010  +sqlserver 二、

    2024年02月08日
    浏览(41)
  • Linux系统时间 vs Docker容器时间 vs 数据库时间

    前两天写了个小demo,部署到腾讯云上,今天测了一下插入数据的接口,发现插入后的数据时间不对。由于我的mysql是装在docker里的,因此有必要将linux系统时间,docker容器时间,以及mysql时间这三者统一起来。 首先确认linux系统时间是否与当前时间一致,登录服务器后直接用

    2024年02月09日
    浏览(54)
  • 【C#】VS Code中C#环境搭建

    目录 前言 一,下载 .net core SDK 二,创建一个 C# 小栗子 创建方式一 创建方式二 三,Vs Code 中环境准备 四,最后运行 C# 小栗子 运行方式一 运行方式二 工作需求而开始学 Unity 3D ,因为 Unity 是和微软合作的,所以它用到的脚步语言是 C#  ,于是我便开始学一下C#,哈哈,有过

    2023年04月09日
    浏览(46)
  • VS2022 和 VS2010 C#控制台输出 Hello World

    最后,一定将【 ✔ 】将解决方案和项目放在同一个目录中(D)的对勾点上,如上图。这个小习惯,对于以后程序的维护有好处。 Console.WriteLine(\\\"Hello World\\\");   代码输入完成以后,可以通过以下3种方法来运行。 1 、在菜单栏上选择 “ 调试 ”-“ 开始执行(不调试) ” 命令。

    2024年02月06日
    浏览(38)
  • C# VS CS1752解决办法

    代码报错: Severity Code Description Project File Line Suppression State Error CS1752 项目文件行抑制状态 错误cs1752无法嵌入互操作类型“ActUtlTypeClass”。 将引用的dll打开其属性 选择属性,将嵌入互操作类型改为false即可。

    2024年02月08日
    浏览(36)
  • c#创建web项目 vs2019

    一、创建项目  二、右击项目添加新建Web服务项  三、启动测试 在刚才新建的Web服务项中简单写一个加法接口

    2023年04月08日
    浏览(35)
  • 使用vs code 编写c#程序

    1.下载安装vs code     官网下载:Visual Studio Code - Code Editing. Redefined 2.安装插件   a.中文包插件(chinese)   b.解决方案管理器插件(vscode-solution-explorer)  c. C# 扩展插件(c#) 3.下载安装 .NET Code SDK      这里下载的是windows版本.NET 7.0 SDK  64位的。安装完成之后管理员权限运行 cmd 输

    2024年02月07日
    浏览(33)
  • C#八皇后算法:回溯法 vs 列优先法 vs 行优先法 vs 对角线优先法

    目录 1.八皇后算法(Eight Queens Puzzle) 2.常见的八皇后算法解决方案 (1)列优先法(Column-First Method): (2)行优先法(Row-First Method): (3)对角线优先法(Diagonal-First Method): (4)回溯法(Backtracking):        皇后问题是一个古老而著名的问题,它实质上就是使棋

    2024年03月22日
    浏览(28)
  • C# VS2019 Form 图标的修改

    引言 图标是用户使用软件的第一印象,第一印象很重要。好的软件UI设计也包括ICO图标的设计。 在C#的Form窗口框架程序设计时,图标的是有两处需要修改,一个是Form窗口的左上角图标,一个是EXE可执行文件的图标。 这里用VS2019中的图标修改为例说明一下图标的修改。 一、

    2023年04月09日
    浏览(30)
  • 在VS里使用C#制作窗口应用

    创建项目的时候搜索net,选择这个。 打开应该是这样 选择公共控件 - PictureBox - 拖入Form 在Image处选择上传本地资源,建议上传一个小一点的图片。 修改一下尺寸。 ctrl+s 保存 从“属性”切换到“事件” 双击Click事件,进入代码编辑 这段代码可以理解为生命周期的开始,即在

    2024年02月22日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包