📄 tj_week.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace counter
{
/// <summary>
/// tj_week 的摘要说明。
/// </summary>
public class tj_week : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lbhigh1;
protected System.Web.UI.WebControls.Label lbhigh2;
protected System.Web.UI.WebControls.Label lbhigh3;
protected System.Web.UI.WebControls.Label lbhigh4;
protected System.Web.UI.WebControls.Label lbhigh5;
protected System.Web.UI.WebControls.Label lbhigh6;
protected System.Web.UI.WebControls.Label lbhigh7;
protected System.Web.UI.WebControls.Label lbhigh8;
public static DataView dv;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
DataSet myds = new DataSet();
myds = counter.SQLConn.ExecuteSqlForDataSet("select * from CounterInfo");
dv=myds.Tables[0].DefaultView;
if(Session["master"]==null) Session["master"]="";
if(Session["whatcan"]==null) Session["whatcan"]=dv[0].Row["whatcan"].ToString();
if(Session["master"].ToString() != "master" && int.Parse(Session["whatcan"].ToString()) < 2) Response.Redirect("help.aspx?id=004&error=您没有查看周访问统计的权限。");
}
public string show_week_data(int show_flag)
{
//找到开始统计天数,如果天数不足7天,则跳过前面的空间
string strshow_week_data_msg1="";
string strshow_week_data_msg2="";
string strshow_week_data_msg3="";
string strshow_week_data_msg4="";
string strvfirst;
int intvdays;
int intmaxday=0;
int intsumday=0;
string[] strweek=new string[] {"日","一","二","三","四","五","六",""};
int lsbf;
DataSet myds1 = new DataSet();
DataView dv1=new DataView();
myds1=counter.SQLConn.ExecuteSqlForDataSet("Select top 1 vtime as vfirst from CounterView order by vtime");
dv1=myds1.Tables[0].DefaultView;
dv1.Table.AcceptChanges();
if(dv1.Count>0)
{
strvfirst=dv1[0].Row["vfirst"].ToString();
}
else
{
strvfirst=DateTime.Now.AddHours(int.Parse(dv[0].Row["adjtime"].ToString())).ToString();
}
dv1.Dispose();
intvdays=(int)(DateTime.Now.AddHours(int.Parse(dv[0].Row["adjtime"].ToString())).Subtract(DateTime.Parse(strvfirst)).TotalDays);
//声明二维数组,voutday(*,0)为访问量,voutday(*,1)为日期,voutday(*,2)为星期
int[,] arvday=new int [7,3];
string[,] arvoutday=new string [7,3];
for(int i=0;i<7;i++)
{
arvday[i,0]=vdaycon(DateTime.Now.AddHours(int.Parse(dv[0].Row["adjtime"].ToString())).AddDays(i-6).ToShortDateString());
if(arvday[i,0]>intmaxday) intmaxday=arvday[i,0];
intsumday+=arvday[i,0];
arvday[i,1]=(int)(DateTime.Now.AddHours(int.Parse(dv[0].Row["adjtime"].ToString())).AddDays(i-6).Day);
arvday[i,2]=(int)(DateTime.Now.AddHours(int.Parse(dv[0].Row["adjtime"].ToString())).AddDays(i-6).DayOfWeek);
}
//防止除数为0而出错
if(intmaxday==0) intmaxday=1;
if(intsumday==0) intsumday=1;
//根据已统计天数将数值左移
if(intvdays>=7)
{
for(int i=0;i<7;i++)
{
arvoutday[i,0]=arvday[i,0].ToString();
arvoutday[i,1]=arvday[i,1].ToString();
arvoutday[i,2]=arvday[i,2].ToString();
}
}
else
{
for(int i=0;i<7;i++)
{
if(i<=intvdays)
{
arvoutday[i,0]=arvday[i+6-intvdays,0].ToString();
arvoutday[i,1]=arvday[i+6-intvdays,1].ToString();
arvoutday[i,2]=arvday[i+6-intvdays,2].ToString();
}
else
{
arvoutday[i,0]="0";
arvoutday[i,1]="";
arvoutday[i,2]="7";
}
}
}
for(int i=0;i<7;i++)
{
strshow_week_data_msg1+="<td width=15 valign=bottom background='images/tu_back.gif' align=center><img style='BORDER-BOTTOM: #000000 1px solid' src='images/tu.gif'";
strshow_week_data_msg1+=" height='"+(int)(float.Parse(arvoutday[i,0].ToString())/intmaxday*100)+"' width='9' alt='"+arvoutday[i,1]+"日,星期"+strweek[int.Parse(arvoutday[i,2].ToString())];
strshow_week_data_msg1+=",访问"+arvoutday[i,0]+"次,";
//计算访问量的百分数,精确到小数后1位,小于零的在前面加字母0
lsbf=(int)(int.Parse(arvoutday[i,0].ToString())*1000/intsumday)/10;
strshow_week_data_msg1+=lsbf+"%'></td>";
strshow_week_data_msg2+="<td width=15 align=center><a title='"+arvoutday[i,1]+"日,星期"+strweek[int.Parse(arvoutday[i,2].ToString())];
strshow_week_data_msg2+=",访问"+arvoutday[i,0]+"次,";
strshow_week_data_msg2+=lsbf+"%'>";
switch(arvoutday[i,2].ToString())
{
case "0":
strshow_week_data_msg2+="<font face='Arial' style='letter-spacing: -1' color='red'>";
break;
case "6":
strshow_week_data_msg2+="<font face='Arial' style='letter-spacing: -1' color='red'>";
break;
case "7":
strshow_week_data_msg2+="<font face='Arial' style='letter-spacing: -1' class='fonts'>";
break;
default:
strshow_week_data_msg2+="<font face='Arial' style='letter-spacing: -1'>";
break;
}
strshow_week_data_msg2+=strweek[int.Parse(arvoutday[i,2].ToString())]+"</font></a></td>";
}
myds1=counter.SQLConn.ExecuteSqlForDataSet("select vweek,count(id) as allweek from CounterView group by vweek");
dv1=myds1.Tables[0].DefaultView;
dv1.Table.AcceptChanges();
int intmaxallweek=0;
int intsumallweek=0;
int[] intvallweek=new int[7];
for(int i=0;i<dv1.Count;i++)
{
intvallweek[int.Parse(dv1[i].Row["vweek"].ToString())]=int.Parse(dv1[i].Row["allweek"].ToString());
if(intvallweek[int.Parse(dv1[i].Row["vweek"].ToString())]>intmaxallweek) intmaxallweek=intvallweek[int.Parse(dv1[i].Row["vweek"].ToString())];
intsumallweek+=intvallweek[int.Parse(dv1[i].Row["vweek"].ToString())];
}
//防止除数为0而出错
if(intmaxallweek==0) intmaxallweek=1;
if(intsumallweek==0) intsumallweek=1;
dv1.Dispose();
for(int i=0;i<7;i++)
{
strshow_week_data_msg3+="<td width=15 valign=bottom background='images/tu_back.gif' align=center><img style='BORDER-BOTTOM: #000000 1px solid;' src='images/tu.gif'";
strshow_week_data_msg3+=" height='"+(int)(float.Parse(intvallweek[i].ToString())/intmaxallweek*100)+"' width='9' alt='星期";
strshow_week_data_msg3+=strweek[i]+",访问"+intvallweek[i]+"次,";
//计算访问量的百分数,精确到小数后1位,小于零的在前面加字母0
lsbf=(int)(int.Parse(intvallweek[i].ToString())*1000/intsumallweek)/10;
strshow_week_data_msg3+=lsbf+"%'></td>";
strshow_week_data_msg4+="<td width=15 align=center><a title='星期"+strweek[i]+",访问"+intvallweek[i]+"次,";
strshow_week_data_msg4+=lsbf+"%'><font face='Arial' style='letter-spacing: -1'>"+strweek[i]+"</font></a></td>";
}
switch(show_flag)
{
case 0:
lbhigh1.Text=((int)((float)(intmaxday)*10+0.5)/10).ToString();
lbhigh2.Text=((float)(int)((3*(float)(intmaxday)*10/4)+0.5)/10).ToString();
lbhigh3.Text=((float)(int)(((float)(intmaxday)*10/2)+0.5)/10).ToString();
lbhigh4.Text=((float)(int)(((float)(intmaxday)*10/4)+0.5)/10).ToString();
return "";
case 1:
return strshow_week_data_msg1+"<td width=10><img src='images/tu_back_right.gif'></td><td width=10></td></tr><tr height='18'><td align=right><p style='line-height: 100%; margin-right: 2; margin-top: 0; margin-bottom: 0'><font face='Arial'>0</font></td><td width=10></td>"+strshow_week_data_msg2;
case 2:
lbhigh5.Text=((int)((float)(intmaxallweek)*10+0.5)/10).ToString();
lbhigh6.Text=((float)(int)((3*(float)(intmaxallweek)*10/4)+0.5)/10).ToString();
lbhigh7.Text=((float)(int)(((float)(intmaxallweek)*10/2)+0.5)/10).ToString();
lbhigh8.Text=((float)(int)(((float)(intmaxallweek)*10/4)+0.5)/10).ToString();
return "";
case 3:
return strshow_week_data_msg3+"<td width=10><img src='images/tu_back_right.gif'></td><td width=10></td></tr><tr height='18'><td align=right><p style='line-height: 100%; margin-right: 2; margin-top: 0; margin-bottom: 0'><font face='Arial'>0</font></td><td width=10></td>"+strshow_week_data_msg4;
default:
return "";
}
}
public int vdaycon(string theday)
{
string strtheday=DateTime.Parse(theday).ToString();
string strthetday=DateTime.Parse(theday).AddDays(1).ToString();
DataSet myds2 = new DataSet();
DataView dv2=new DataView();
myds2=counter.SQLConn.ExecuteSqlForDataSet("Select count(id) as vdaycon from CounterView where vtime>='"+strtheday+"' and vtime<='"+strthetday+"'");
dv2=myds2.Tables[0].DefaultView;
dv2.Table.AcceptChanges();
if(dv2.Count>0)
{
return int.Parse(dv2[0].Row["vdaycon"].ToString());
}
else
{
dv2.Dispose();
return 0;
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -