.net实现统计txt记事本消费单的数据
2011-03-21 21:45
309 查看
平时用系统自带的记事本记录日常消费,简单快捷但是缺少统计功能,不清楚每个月花费多少,于是写个程序统计一下。
下面只给出一点测试数据:
统计结果如下:
实现代码:
Default.aspx
<style type="text/css">
.f{ color:Red; font-weight:bold;}
</style>
<asp:Literal runat="server" ID="ltlResult"></asp:Literal>
Default.aspx.cs
下面只给出一点测试数据:
统计结果如下:
实现代码:
Default.aspx
<style type="text/css">
.f{ color:Red; font-weight:bold;}
</style>
<asp:Literal runat="server" ID="ltlResult"></asp:Literal>
Default.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Text.RegularExpressions; using System.Globalization; using System.Text; namespace TestProject2011 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string filepath = Server.MapPath("~/test.txt"); using (StreamReader sr = new StreamReader(filepath, Encoding.UTF8)) { StringBuilder sbDetail = new StringBuilder(); //详细 StringBuilder sbMonth = new StringBuilder(); //月份统计 StringBuilder sbYear = new StringBuilder(); //年统计 string strline = null; //txt文本每行内容 decimal daySum = 0; //日金额 decimal monthSum = 0; //月份金额 decimal yearSum = 0; //年金额 decimal allSum = 0; //总金额 DateTime dtLastDate = DateTime.MinValue; //临时保存统计的最后一个月 string patternDate = @"\d{4,4}-\d{1,2}-\d{1,2}"; //日期正则 string patternMoney = @"^\d+(\.\d+)?";//金额正则 while ((strline = sr.ReadLine()) != null) { Match m = Regex.Match(strline, patternDate); if (m.Success) { DateTime dt = Convert.ToDateTime(m.ToString()); if (dt.Month > dtLastDate.Month || dt.Year > dtLastDate.Year) //下一个月或下一年 { if (dtLastDate != DateTime.MinValue) { sbDetail.Append("<span class='f'>本月统计到" + dtLastDate.Day + "号结束,消费金额:" + monthSum + "</span><br />"); sbMonth.Append(dt.AddMonths(-1).ToString("yyyy年MM月") + ":" + monthSum + "</span><br />"); if (dt.Year > dtLastDate.Year) { sbYear.Append(dtLastDate.Year + "年的消费金额:" + yearSum + "<br />"); yearSum = 0; } monthSum = 0; } sbDetail.Append("<span class='f'>本月开始:" + m.ToString() + "</span><br />" + strline + "<br />"); } else if (dt < dt.AddMonths(1).AddDays(-1)) { sbDetail.Append(m.ToString() + "<br />"); } dtLastDate = dt; } else { string[] sArr = strline.Split('、'); foreach (string s in sArr) { if (!string.IsNullOrEmpty(s)) { Match mm = Regex.Match(s, patternMoney); if (mm.Success) { decimal tempNum = decimal.Parse(mm.ToString()); daySum += tempNum; monthSum += tempNum; yearSum += tempNum; allSum += tempNum; } } } string daySumStr = daySum > Convert.ToDecimal(100) ? "<span class='f'>" + daySum.ToString() + "</span>" : daySum.ToString(); sbDetail.Append(strline.PadRight(30, '=') + "当天:" + daySumStr + " 当月:" + monthSum + " 当年:" + yearSum + " 总共:" + allSum + "<br />"); daySum = 0; } } sbDetail.Append("<span class='f'>本月统计到" + dtLastDate.Day + "号结束,消费金额:" + monthSum + "</span><br />"); sbMonth.Append(dtLastDate.ToString("yyyy年MM月") + ":" + monthSum + "<br />"); sbYear.Append(dtLastDate.Year + "年的消费金额:" + yearSum + "<br />"); ltlResult.Text = sbDetail.ToString() + "<br /><br />按月统计如下:<br />" + sbMonth.ToString() + "<br />按年统计如下:<br />" + sbYear.ToString() + "总共消费金额:" + allSum; } } } }
相关文章推荐
- .net实现统计txt记事本消费单的数据
- .net下实现Word动态填加数据打印
- PHP+MySQL实现对一段时间内每天数据统计优化操作实例
- 网站统计中的数据收集原理及实现
- 多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】
- (转载)利用HttpWebRequest通过POST Json数据在.net后台实现不同平台间的数据传输
- C#用DataTable实现Group by数据统计
- Excel、记事本数据导入到数据库的实现方法
- Excel、记事本数据导入到数据库的实现方法
- 网站统计中的数据收集原理及实现
- 基于.NET实现数据挖掘--聚类分析算法
- 利用OFFICE 2003 OWC 绘图控件在.NET平台下实现数据图表的绘制
- 网站统计中的数据收集原理及实现
- 网站统计中的数据收集原理及实现_埋点统计
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
- php和jquery实现地图区域数据统计展示数据示例
- java easyreport 导入excel、 txt 数据简单实现(一)
- 网站统计中的数据收集原理及实现_埋点统计
- 从txt中读入数据到数组中(fscanf)的实现代码