项目用到的知识点总结,欢迎大家吐槽:
/// <summary> /// 转换非yyyy-MM-dd的字符串为DateTime类型 /// </summary>public static void ConvertDateFormat() { string orginStr = "test-test-20130607.xls"; string dateStr = orginStr.Split('-')[2].Split('.')[0]; Console.WriteLine(dateStr); Console.WriteLine(DateTime.ParseExact(dateStr, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-M-d")); }
相关资料:
http://www.jb51.net/article/37007.htm
http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx
/// <summary> /// get the days of currDate minus lastDate;The result is negative is allowed /// </summary> /// <param name="lastDateStr"></param> /// <param name="currDateStr"></param> /// <returns></returns> private int minusTwoDate(string lastDateStr,string currDateStr) { DateTime lastDate = Convert.ToDateTime(lastDateStr); DateTime currDate = Convert.ToDateTime(currDateStr); return (currDate - lastDate).Days; }
/// <summary> /// judage whether cross the month;cross:true; /// </summary> /// <param name="lastDateStr">the last page recorded</param> /// <param name="currDateStr"></param> /// <returns></returns> private bool whetherCrossMonth(string lastDateStr, string currDateStr) { DateTime lastDate = Convert.ToDateTime(lastDateStr); DateTime currDate = Convert.ToDateTime(currDateStr); if (currDate.Month == lastDate.Month)//the same month { return false; } else { return true; } }
/// <summary> /// is last day:true;is not last day:false and return last date of month /// </summary> /// <param name="lastDateStr"></param> /// <param name="lastDayOfMonth">the last day of month or null</param> /// <returns>is last day:true;or false</returns> private bool wetherIsLastDay(string lastDateStr,out string lastDayOfMonth) { DateTime lastPageDate = Convert.ToDateTime(lastDateStr); //first day of month string lastDay = string.Empty; DateTime lastDateOfMonth = Convert.ToDateTime(lastPageDate.Year + "-" + lastPageDate.Month + "-" + DateTime.DaysInMonth(lastPageDate.Year, lastPageDate.Month)); if ((lastDateOfMonth-lastPageDate).Days>0) { lastDayOfMonth =lastDateOfMonth.ToShortDateString();; return false; }// less than The last day of each month else { lastDayOfMonth = lastDay; return true; }// }
sqlite方面:
//sql。如果businessDate字段不格式化为yyyy-MM-dd,则在max()对此字段取值会 //出现2013-1-9大于2013-1-10、2013-1-20的情况 sqlList.Add(String.Format("insert into test(businessName,businessDate,indb_datetime) values('{0}','{1}','{2}')", EventOrderKeyStr, fileDate.ToString("yyyy-MM-dd"), DateTime.Now.ToString())); //入库环节 DBHelperSqlite dhSqlite = new DBHelperSqlite(); dhSqlite.ExecuteSqlTran(sqlList);
dbhelper:
private string dbName = "cmcc2.db"; private string connectionString = "Data Source=cmcc2.db;Pooling=true;FailIfMissing=false"; /// <summary> /// if the db is not exists,create it and create the table /// </summary> public DBHelperSqlite() { string SQLCreateStr = "CREATE TABLE [cmcc_businesses_info] (businessName nvarchar(50),businessDate nvarchar(10),indb_datetime nvarchar(20))"; #region CASE2 FileInfo fi = new FileInfo(dbName); if (fi.Exists == false) { logger.InfoFormat("db不存在"); //Console.WriteLine("db不存在"); SQLiteConnection.CreateFile(dbName); logger.InfoFormat("db创建完成"); using (SQLiteConnection conn = new SQLiteConnection(connectionString)) { conn.Open(); using (SQLiteCommand cmd = new SQLiteCommand(SQLCreateStr, conn)) { if (cmd.ExecuteNonQuery() > 0) { logger.InfoFormat("表创建成功"); //Console.WriteLine("表创建成功"); } } } } #endregion }//ctor /// <summary> /// 执行多条SQL语句,实现数据库事务。 /// </summary> /// <param name="SQLStringList">多条SQL语句</param> public void ExecuteSqlTran(IList<string> SQLStringList) { using (SQLiteConnection conn = new SQLiteConnection(connectionString)) { conn.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = conn; SQLiteTransaction tran = conn.BeginTransaction(); cmd.Transaction = tran; try { for (int n = 0; n < SQLStringList.Count; n++) { string strsql = SQLStringList[n].ToString(); if (strsql.Trim().Length > 1) { logger.Debug(strsql); cmd.CommandText = strsql; cmd.ExecuteNonQuery(); } } tran.Commit(); } catch (System.Data.SQLite.SQLiteException ex) { logger.Error(ex); tran.Rollback(); //throw new Exception(ex.Message); } } }//trans
SubString函数使用时一个隐藏的“雷”:
/// <summary> /// str.Substring(startIndex,length)如果length大于str的长度,就会报错 /// </summary> public static void SubstringTest2() { string str = "4.333"; string[] r = str.Split('.'); if (r.Length == 2) { if (r[1].Length > 4) { r[1] = r[1].Substring(0, 4); } Console.WriteLine(r[0] + "." + r[1]); } }