小白请教一个问题。

He.jr�kira~ 2019-09-18 05:50:48
static void Main(string[] args)
{
//1,读取两个表格
//2,获取时间进行比对,
//表1的日期如果在表2随便一行末尾的时间段内,就存表二的这一行,
//每个时间段单独写一行,日期可以重复,同一日期的时间段不能出现相同,品种跟在时间段后面
//3,

string[] arry_product_tradint_time = File.ReadAllLines(@"C:\Users\hezhi\Desktop\2\product_trading_time.csv", Encoding.Default);//读取品种表格
string[] arry_non_trading_day = File.ReadAllLines(@"C:\Users\hezhi\Desktop\2\non_trading_day.csv", Encoding.Default);//读取日期表格
#region
//List<string> time = new List<string>();
//for (int i = 1; i < b2.Length; i++)//把日期读到list
//{
// string[] arr = b2[i].Split(',');
// time.Add(arr[0]);
// //Console.WriteLine(arr[0]);//显示一下读到list的日期内容
//}
//List<string> TableA = new List<string>();
//for (int j = 1; j < b1.Length; j++)//把品种表格读到list
//{
// string[] arr2 = b1[j].Split();
// TableA.Add(arr2[0]);
// //Console.WriteLine(arr2[0]);//显示一下读到LIST的品种内容
//}

//foreach (string obj in time)
//{
// str
//}











//Console.ReadKey();


////List<string> datelist = new List<string>();//读取日期表格第一列的年月日
////for (int i = 0; i < b2.Length; i++)
////{
//// string[] arr = b2[i].Split(',');
//// datelist.Add(arr[0]);
////}
////List<string> datelist2 = new List<string>();//读取品种表格中最后一列的时间区间
////for (int p = 0; p < b1.Length; p++)
////{
//// string[] arrp = b1[p].Split(',');
//// datelist2.Add(arrp[12]);
////}

////for (int i = 0; i < datelist2.Count; i++)
////{
//// //Console.WriteLine(datelist2[i]);
//// string obj = datelist2[i].Replace("--", "&");
//// string[] yy = obj.Split('&');
//// Console.WriteLine(yy[0]);
////}



////string dt = new DateTime(2014, 01, 01).ToString("yyyy-MM-dd");
#endregion

List<table_non_trading_day> list_non_trading_day = new List<table_non_trading_day>();
for (int i = 1; i < arry_non_trading_day.Length; i++)
{
string[] splitted = arry_non_trading_day[i].Split(',');//根据逗号分隔读取到内容
string[] splitted_time = splitted[0].Split('-');//根据-分隔,读取到第一列的时间,分开的
DateTime dt = new DateTime(Convert.ToInt32(splitted_time[0]), Convert.ToInt32(splitted_time[1]), Convert.ToInt32(splitted_time[2]));
//把读取到的时间转datetime格式
table_non_trading_day obj = new table_non_trading_day();//声明一个obj来存数据
obj.date = dt;
obj.morning = splitted[1];
obj.afternoon = splitted[2];
obj.night = splitted[3];
obj.product = splitted[4];
list_non_trading_day.Add(obj);//存进list_non_trading_day

}

List<table_product_trading_time> list_Product_Trading_Time = new List<table_product_trading_time>();
for (int i = 1; i < arry_product_tradint_time.Length; i++)
{
string[] splitted = arry_product_tradint_time[i].Split(',');//根据逗号分割
string[] splitted_period1 = splitted[1].Split('-');//根据-来分隔的第二列 09:00:00--10:15:00
DateTime dt_period1_start = new DateTime(Convert.ToInt32(splitted_period1[0]));
table_product_trading_time obj = new table_product_trading_time();
obj.productID = splitted[0];//存分隔出来的ID这一列
obj.period1.Period_Start = dt_period1_start;



}

Console.ReadKey();
}


运行到DateTime dt_period1_start = new DateTime(Convert.ToInt32(splitted_period1[0]));这一行就会报错,显示输入字符串的格式不正确,有没有大侠知道这边应该怎么写啊
...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2019-09-19
  • 打赏
  • 举报
回复
what you need to do is: debug
LikeWatchStar 2019-09-18
  • 打赏
  • 举报
回复
首先你给的关键的信息应该是表格里的时间格式,然后你没给,我只能猜了,我只看到了你第二列的时间格式好像是09:00:00--10:15:00, 你用Split('-'),返回的应该是09:00:00和10:15:00,这种明显是时间格式的字符你先转成了Int32,肯定转不了啊,如果你想转DateTime格式,建议直接DateTime.Parse(string StringDateTime),你这种直接精确到时的我没试过能不能成功

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧