Access数据库(test.mdb)中的“来访者登记表”是SARS期间某城市的火车站的登记表的电子录入表格,
(大约有1万条记录,这里只是一段个样本数据)。需要写一个程序将表格进行一个统计和排序,输出到一个文本文件中。要求:
数据输出文件后缀名为".csv",数据项之间用半角的逗号分隔,每条数据回车换行分隔。格式说明如下: 第一行数据是固定的标题项,固定文本:
"身份证号,来自城市,最近一次来访时间,来访次数"
第二行开始是数据项,按照第一行的顺序输出。
《SARS期前来访人员统计输出样例.csv》是一个给出的样本数据的格式例子供参考 数据排序,按照来自城市排序,5个城市按照下面的列表顺序固定排序放在数据输出的最前面,其他城市按照字符串的比较顺序排序
5个固定的城市顺序为:
北京
上海
广州
深圳
成都 “最近一次来访时间”是指某个人员最近一次到访这个城市的时间,输出请按照 "yyyy-MM-dd"的格式填写。
请用C#或者Java写一个处理程序
要求代码清晰,易维护,可读性好,执行效率高,如果算法比较复杂请给出适当的算法说明
注意:
由于是手工录入数据,所以“进入日期”这个字段可能被填写成多种多样的格式
95%的格式如下几种形式:
"2003/3/14"
"2003-3-14"
"2003.3.14"
"2003.03.14"
"20030304"
"2003年3月14日"
当然5%还有个别其他的写法,程序里面需要做相应的处理操作,请给出你的处理思路和为什么这么处理的原因
求完整C#代码!!
(大约有1万条记录,这里只是一段个样本数据)。需要写一个程序将表格进行一个统计和排序,输出到一个文本文件中。要求:
数据输出文件后缀名为".csv",数据项之间用半角的逗号分隔,每条数据回车换行分隔。格式说明如下: 第一行数据是固定的标题项,固定文本:
"身份证号,来自城市,最近一次来访时间,来访次数"
第二行开始是数据项,按照第一行的顺序输出。
《SARS期前来访人员统计输出样例.csv》是一个给出的样本数据的格式例子供参考 数据排序,按照来自城市排序,5个城市按照下面的列表顺序固定排序放在数据输出的最前面,其他城市按照字符串的比较顺序排序
5个固定的城市顺序为:
北京
上海
广州
深圳
成都 “最近一次来访时间”是指某个人员最近一次到访这个城市的时间,输出请按照 "yyyy-MM-dd"的格式填写。
请用C#或者Java写一个处理程序
要求代码清晰,易维护,可读性好,执行效率高,如果算法比较复杂请给出适当的算法说明
注意:
由于是手工录入数据,所以“进入日期”这个字段可能被填写成多种多样的格式
95%的格式如下几种形式:
"2003/3/14"
"2003-3-14"
"2003.3.14"
"2003.03.14"
"20030304"
"2003年3月14日"
当然5%还有个别其他的写法,程序里面需要做相应的处理操作,请给出你的处理思路和为什么这么处理的原因
求完整C#代码!!
select 身份证号,来自城市,进入时间,车次 from 来访者登记表 left join city on 来访者登记表.来自城市=city.cityname order by cityID
这样没问题吧?还有:
.csv 格式文件就是excel吧?
SQL查出数据放在DataTable里,然后怎么输出到excel?还有正则我只是了解一点,具体写法不会啊!求教!
比如加个QueryNo字段,然后Update 表 set QueryNo=1 where 城市=北京
其他的城市类推。
当然你上面自己写的方法也应该是可以的csv也是Excel
导出到excel的方法在CSDN上一搜就能搜出很多来
正则表达式写出来给你参考下:
string GetFormatDate(string date)//date表示从数据库中取出来的日期
{
Regex reg=new Regex(@"(?<year>\d{4})[-/.年]?(?<month>0?[1-9]|1[12])[-/.月]?(?<day>\d{2}|[1-9])");
string result=string.Empty;
Match m=reg.Match(date);
date=m.Groups["year"].Value+"-"+m.Groups["month"].Value+"-"+m.Groups["day"].Value;
if(Regex.IsMatch(date,@"\d{4}(-\d{1,2)){2}")) result=DateTime.Parse(date).ToString("yyyy-MM-dd");
return result;
}