winforms 如何添加5分钟到字符串网址链接日期时间部分?

f0ofjuux  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(140)

我想从当前链接创建一个未来的下载链接。不确定我是否需要RoundTime方法。
以下是lastRadarLink内容构建方式的示例:
https://sites/default/files/ims_data/map_images/IMSRadar/IMSRadar_202210221655.gif
这是日期时间部分:2022年10月22日16时55分
我想在16:55的基础上再增加5分钟,并使用增加的5分钟重新构建一个新链接,因此本例中的下一个链接应为:
https://sites/default/files/ims_data/map_images/IMSRadar/IMSRadar_202210221700.gif

private void DownloadNext(string lastRadarLink)
{

}

和RoundTime方法

DateTime RoundTime(DateTime date, TimeSpan interval)
{
    return new DateTime(date.Ticks / interval.Ticks *
        interval.Ticks);
}
jqjz2hbq

jqjz2hbq1#

你把它弄得这么复杂。在你的情况下,最简单的方法是使用日期和时间格式字符串。
例如:

using System.Globalization;

var time = DateTime.ParseExact("2022-10-22 16:55", "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
var fileName1 = $"XYZ_{time:yyyyMMddHHmm}.gif";
time = time.AddMinutes(5);
var fileName2 = $"XYZ_{time:yyyyMMddHHmm}.gif";
Console.WriteLine(fileName1);
Console.WriteLine(fileName2);

输出为:

XYZ_202210221655.gif
XYZ_202210221700.gif

您可以在https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings上了解更多信息
回复您的注解时,您可以从输入字符串中提取日期,如下所示

using System.Globalization;

var input = "sites/default/files/ims_data/map_images/IMSRadar/IMSRadar_202210221700.gif";
var timeString = input.Split("/")[^1][9..^4]; // timeString is here "202210221700"
var time = DateTime.ParseExact(timeString, "yyyyMMddHHmm", CultureInfo.InvariantCulture);
var fileName1 = $"XYZ_{time:yyyyMMddHHmm}.gif";
time = time.AddMinutes(5);
var fileName2 = $"XYZ_{time:yyyyMMddHHmm}.gif";
Console.WriteLine(fileName1);
Console.WriteLine(fileName2);

输出将为:

XYZ_202210221700.gif
XYZ_202210221705.gif

相关问题