[英]Remove string part in a variable containing date in c#
我有一个字符串变量,其值为"02/04/2018 to 08/04/2018"
。
string dateRange = "02/04/2018 to 08/04/2018";
我在c#
中有一个函数,如下所示,它获取02/04/2018 to 08/04/2018
范围内的所有日期。
public string getDateRange(string dateRange) {
var selectedDates = new List<DateTime?>();
for (var date = Convert.ToDateTime("02/04/2018");
date <= Convert.ToDateTime("08/04/2018");
date = date.AddDays(1)) {
selectedDates.Add(date);
}
foreach (var date in selectedDates) {
Console.WriteLine(date);
}
return selectedDates;
}
我想通过这种方法实现的是在日期范围内删除单词to
,并分别传递开始日期和结束日期。 有人可以帮忙吗?
您可以使用String.Split()
分隔日期:
public string[] separateDates(string dateRange)
{
string[] dateSplit = dateRange.Split(new string[] { "to" }, StringSplitOptions.RemoveEmptyEntries);
return new string[]{dateSplit[0].Trim(), dateSplit[1].Trim()};
}
该方法返回一个字符串数组,该字符串数组包含第一个日期( "02/04/2018"
)和第二个日期( "08/04/2018"
):
static void Main()
{
string dateRange = "02/04/2018 to 08/04/2018";
string[] myDates = separateDates(dateRange);
string firstDate = myDates[0];//"02/04/2018"
string secondDate = myDates[1];//"08/04/2018"
}
编辑:
我已经实现了将日期分隔为您的方法的方法:
public List<DateTime?> getDateRange(string dateRange)
{
var selectedDates = new List<DateTime?>();
string[] dateSplit = dateRange.Split(new string[] { "to" }, StringSplitOptions.RemoveEmptyEntries);
for (var date = Convert.ToDateTime(dateSplit[0].Trim());
date <= Convert.ToDateTime(dateSplit[1].Trim());
date = date.AddDays(1))
{
selectedDates.Add(date);
}
foreach (var date in selectedDates)
{
Console.WriteLine(date.Value.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture));
}
return selectedDates;
}
该方法现在返回List<DateTime?>
而不是string
因为selectedDates
的类型为List<DateTime?>
。 我还对控制台输出进行了修改,现在日期以以下格式dd/MM/yyyy
(例如02/04/2018
)打印到控制台。
LastIndexOf
:此方法从右侧搜索字符串。 它找到字母或子字符串最后一次出现的位置。 它是IndexOf的反向版本。
public static void Main(string[] args)
{
string str = "02/04/2018 to 08/04/2018";
int pos = str.LastIndexOf("to");
string result = str.Substring(0, pos) + " " + str.Substring(pos + 2);
Console.WriteLine(result);
}
它的打印日期为:02.04.2018 00:00:00。 我已将字符串指定为dd / MM / yyyy。 它只是删除了00:00:00,但将点之间保持。
这是修正的小修正:
Console.WriteLine(date.Value.ToString("dd/MM/yyyy"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.