如何获取一个月的每一周的周一和周五
最好是能做成一个数组。请教高人!(如果6月有2天,7月有3天。这一周算在7月份)

解决方案 »

  1.   

    你可以查看一下SQL对于时间的处理,在里边有个函数可以得到当前是星期几!在组合你的关于月份的查询条件就能得到了
      

  2.   

    public string showWeekDay(string strDate)
    {
    try
    {
    DateTime dtDateTime=Convert.ToDateTime(strDate);
                    string strweekDay=dtDateTime.DayOfWeek.ToString();
            return strweekDay;
    }
    catch
    {
    return null;
    }
    }
      

  3.   

    public void InitializeArrange()
    {
    try
    {
    SqlConnection objConn=new SqlConnection(str_Conn);
    string delSql="delete from L_MsikWorkDateArrangeTable where MemberID=@i_MemberID and WorkYear=@strWorkYear";
    SqlCommand objDel=new SqlCommand(delSql,objConn);
    objDel.Parameters.Add(new SqlParameter("@i_MemberID",SqlDbType.Int)).Value=i_MemberID;
    objDel.Parameters.Add(new SqlParameter("@strWorkYear",SqlDbType.Char,4)).Value=str_Year;
    objConn.Open();
    objDel.ExecuteNonQuery();
    objConn.Close();
    //
    bool leadyear=b_leapyear(str_Year);//estimate February is 28 or 29,lead Year is 29 day. other Month is 28 day
    for (int Month=1;Month<=12;Month++)
    {
    int Days=0;

    //string SqlTemp="";
    if ((Month==1)||(Month==3)||(Month==5)||(Month==7)||(Month==8)||(Month==10)||(Month==12))
    {
    Days=31;
    }
    if ((Month==4)||(Month==6)||(Month==9)||(Month==11))
    {
    Days=30;
    }
    if (leadyear&&(Month==2))
    {
    Days=29;
    }
    if (!leadyear&&(Month==2))
    {
    Days=28;
    }
    for (int i=1;i<=Days;i++)
    {
                            string StrSqlInsert="Insert Into L_MsikWorkDateArrangeTable(MemberID,WorkYear,WorkMonth,WorkDay) values";
                            string SqlTemp="("+i_MemberID+",'"+str_Year+"','"+Month+"','"+i.ToString()+"')";
    StrSqlInsert+=SqlTemp;
    SqlCommand objComm=new SqlCommand(StrSqlInsert,objConn);
    objConn.Open();
    objComm.ExecuteNonQuery();
    objConn.Close();
    }
    }
    }
    catch 
    {
    b_result=false;
    }
    }
    //estimate Year whether leapyear
    public bool b_leapyear(string SelectYear)
    {
    int i_selectYear=Int32.Parse(SelectYear);
    bool leadyear;
    if (i_selectYear%4==0)
    {
    if (i_selectYear%100==0)
    {
    if (i_selectYear%400==0)
    {
    leadyear=true;
    }
    else
    {
    leadyear=false;
    }
    }
    else
    {
    leadyear=true;
    }
    }
    else
    {
    leadyear=false;
    }
    return leadyear;
    }

    }
      

  4.   

    WorkArrangeClass WAC=new WorkArrangeClass((string)Session["strConn"],(int)Session["MemberID"],strYear,strMonth);
    string strweekDay=WAC.showWeekDay(strDate);
    switch (strweekDay)
    {
    case "Monday":
    strDate="星期一";
    break;
    case "Tuesday":
    strDate="星期二";
    break;
    case "WednesDay":
    strDate="星期三";
    break;
    case "Thursday":
    strDate="星期四";
    break;
    case "Friday":
    strDate="星期五";
    break;
    case "Saturday":
    strDate="星期六";
    break;
    case "Sunday":
    strDate="星期日";
    break; 
    }