如何将每次 5 分钟添加到链接时间部分?

匿名
2024-03-11T08:11:29.6066667+00:00

在这种方法中,我倒计时 5 分钟。在构造函数中,_elapsedSeconds设置为 300。 然后,当从 5 分钟开始倒计时结束时,我调用了 DownloadCurrentImages() 方法,在这个方法中,我得到了对字符串的引用。

另一个问题是,当第一次倒计时结束时,我如何每次再次倒计时到 5 分钟? 当它到达这部分时,当小时、分钟和秒为 0 时,我希望计时器再次开始倒数 5 分钟。

private void TimeToDownload(Label LabelToDisplay)
        {
            TimeSpan time1 = TimeSpan.FromSeconds(_elapsedSeconds);
            LabelToDisplay.Text = time1.ToString(@"hh\:mm\:ss");

            System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer
            {
                Interval = 1000,
                Enabled = true
            };
            _timer.Tick += (sender, args) =>
            {
                _elapsedSeconds--;
                TimeSpan time = TimeSpan.FromSeconds(_elapsedSeconds);
                LabelToDisplay.Text = time.ToString(@"hh\:mm\:ss");

                if(time.Hours == 0 && time.Minutes == 0 && time.Seconds == 0)
                {
                    DownloadCurrentImages();

                    _elapsedSeconds = 300;
                }
            };
        }

这个方法得到我想处理的字符串:

private void DownloadCurrentImages()
        {
            var firstgoodradarlink = rad.workingCurrentLink;


        }

例如,如果 firstgoodradarlink 中的链接是:

https://ims.gov.il/sites/default/files/ims_data/map_images/IMSRadar/IMSRadar_202203090050.gif

然后,每次倒计时 5 分钟到达 0 时,我想在字符串日期时间部分添加 5 分钟,并使用最后添加的时间字符串更新 FirstGoodRadarLink,以不使用 rad.workingCurrentLink。

rad.workingCurrentLink 只是获取第一个字符串一次,然后从这个字符串中添加每个 5 分钟。

如果字符串是:

https://ims.gov.il/sites/default/files/ims_data/map_images/IMSRadar/IMSRadar_202203090050.gif

然后添加 5 分钟后,它应该是:

https://ims.gov.il/sites/default/files/ims_data/map_images/IMSRadar/IMSRadar_202203090055.gif 我在 0050 的右侧增加了 5 分钟,现在是 0055

然后在接下来的 5 分钟内,firstgoodradarlink 应该是最后添加时间为 0055 的字符串,并再添加 5 分钟,依此类推。 不知何故,我只需要引用一次 rad.workingCurrentLink,然后每次增加 5 分钟。

在很长一段时间后每次添加 5 分钟时,它还应该更改字符串中的日期。添加的 5 分钟应更新整个日期时间部分:202203090050

因此,如果日期是20220309并且我添加了 5 分钟,持续了 3 天,那么日期也应该根据过去的时间进行更新,因此每次字符串中的新链接 firstgoodradarlink 也应该考虑需要更新它的日期。

Note:此问题总结整理于:How can i add each time 5 minutes to the link time part ?

开发人员技术 Windows 窗体
开发人员技术 C#
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,676 信誉分 Microsoft 外部员工
    2024-03-11T08:58:24.79+00:00

    根据您的描述,您希望每次将 5 分钟添加到字符串 firstgoodradarlink。

    我做了一个代码示例,你可以参考它。

     public Form1()  
            {  
                InitializeComponent();  
                _elapsedSeconds = 300;  
            }  
            int _elapsedSeconds;  
            private void button1_Click(object sender, EventArgs e)  
            {  
                TimeToDownload(label1);  
            }  
      
            private void TimeToDownload(Label LabelToDisplay)  
            {  
          
                TimeSpan time1 = TimeSpan.FromSeconds(_elapsedSeconds);  
                LabelToDisplay.Text = time1.ToString(@"hh\:mm\:ss");  
      
                System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer  
                {  
                    Interval = 1000,  
                    Enabled = true  
                };  
                int i = 1;  
                _timer.Tick += (sender, args) =>  
                {  
                     
                    _elapsedSeconds--;  
                    TimeSpan time = TimeSpan.FromSeconds(_elapsedSeconds);  
                    LabelToDisplay.Text = time.ToString(@"hh\:mm\:ss");  
      
                    if (time.Hours == 0 && time.Minutes == 0 && time.Seconds == 0)  
                    {  
                        DownloadCurrentImages(i);  
      
                        _elapsedSeconds = 300;  
                        i++;  
                    }  
                     
                };  
            }  
            int value = 0;  
            private void DownloadCurrentImages(int i)  
            {  
                var firstgoodradarlink = (value+5*i).ToString("D4");  
                listBox1.Items.Add(firstgoodradarlink);  
      
            }  
    

    经过 15 分钟的测试: 181289-image.png

    注意:如果要设置整个日期,只需更改为:

    var firstgoodradarlink = DateTime.Now.ToString("yyyyMMdd")+(value+5*i).ToString("D4");
    

    希望这对你有所帮助。

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。