这是我想要做的C#
网络服务。
arg1
是一个下拉菜单,用户可以从中选择“每月每月季度”。
arg2
是他们输入的日期。
arg3
是他们选择的日期加上添加到日期的一年,一月或三个月。
到目前为止,我把它放在一起:
public ServiceResult CallService(string arg1, string arg2 = "", string arg3 = "")
{
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
//Write Your Code Here
if (arg1 == "1 - Annually")
{
DateTime thisDate1 = Convert.ToDateTime(arg2);
thisDate1.AddYears(1);
arg3 = Convert.ToString(thisDate1);
}
return new EchoInputHandler().EchoInput(arg1, arg2, arg3);
}
我收到了错误消息:
FormatException was unhandled by user Code
An Exception of type 'System.FormatException' occurred in mscor.lib but was not handled in user code
Additional information: String was not recognized as a valid DateTime.
有人可以告诉我为什么会这样吗?
我已经解决了!这就是我现在的代码:
public ServiceResult CallService(string arg1, string arg2 = "", string arg3 = "")
{
if (arg1 == "1 - Annually")
{
DateTime arg2Date = Convert.ToDateTime(arg2);
arg2Date = arg2Date.AddYears(1);
arg3 = arg2Date.ToString("dd/MM/yyyy");
}
}
答案 0 :(得分:1)
基本上它告诉你Arg2无法被识别为有效的DateTime。
我会做一些改进:
1)确保你不要在空字符串上调用Convert.ToDateTime(改为使用.Parse,基本上这就是Convert.ToDateTime在内部使用的内容)
2)确保验证arg2 - 您应该知道输入格式。
3)如果你知道输入格式。使用ParseExact
4)确保使用.parse og .ParseExact和try / catch处理,并在catch异常上返回对客户端有用的东西
答案 1 :(得分:0)
尝试使用DateTime.ParseExact并应用您尝试使用的日期格式。