.net有没有计算当前日期是当年第几周的函数??
谢谢
如果没有,有没有现成的算法

解决方案 »

  1.   

    老大,你先取Day先,计算出他是哪年的第几天,在除七不就可以了吗?
      

  2.   

    string t = "2005-1-7";
    DateTime dt = DateTime.Parse(t);
    int i;
    if(dt.DayOfYear%7==0)
    {
     i = dt.DayOfYear/7;
    }
    else
    {
     i = dt.DayOfYear/7+1;
    }
    MessageBox.Show(i.ToString());
      

  3.   

    有这个的,你输入now然后输入"."就有个菜单,你看提示来找.我以前做过了.
      

  4.   

    看看DateTime.Now.DayOfWeek;DateTime.Now.DayOfYear,是不是你需要的。
      

  5.   

    string strDate =DateTime.Now.Year.ToString()+"-1-1";
    DateTime dtmFisrtDay=Convert.ToDateTime(strDate);
    string strWeek=dtmFisrtDay.DayOfWeek.ToString().ToLower();;
    int intweek=0;
    switch (strWeek)
    {
    case "saturday":
    intweek=7;
    break;
    case "thursday":
    intweek=5;
    break;
    ......//其余的你自己补吧
    }
    intweek=7-intweek;//第一周剩余的天数 int intOutPut=0;//要输出的周数 int intNow=DateTime.Now.DayOfYear; intOutPut=intNow/7;

    int intLoop=(intNow-1)%7;//因为每年的第一天已经算了一天,故此处应减一
    intLoop=intLoop-intweek;
    if(intLoop>0)
    {
    intOutPut=intOutPut+2;
    }
    else
    {
    intOutPut=intOutPut+1;
    }
      

  6.   

    protected int GetWeekOfYear(DateTime dt)
    {
    CultureInfo      ci =  CultureInfo.CurrentCulture;
    System.Globalization.Calendar      cal = ci.Calendar;
    CalendarWeekRule cwr = ci.DateTimeFormat.CalendarWeekRule;
    DayOfWeek        dow = ci.DateTimeFormat.FirstDayOfWeek;
    return cal.GetWeekOfYear(dt, cwr, dow);
    }
      

  7.   

    Sorder(剑客)的没见过,学习
    我还是先改一下我昨天的方法
    string strDate =DateTime.Now.Year.ToString()+"-1-1";
    DateTime dtmFisrtDay=Convert.ToDateTime(strDate);
    string strWeek=dtmFisrtDay.DayOfWeek.ToString().ToLower();;
    int intweek=0; switch (strWeek)
    {
    case "saturday":
    intweek=7;
    break;
    case "thursday":
    intweek=5;
    break;
    }
    intweek=8-intweek;//第一周剩余的天数 int intOutPut=0;//要输出的周数 int intNow=DateTime.Now.DayOfYear; intOutPut=intNow/7;

    int intLoop=intNow%7;//因为每年的第一天已经算了一天,故此处应减一
    intLoop=intLoop-intweek;
    if(intLoop>0)
    {
    intOutPut=intOutPut+2;
    }
    else
    {
    intOutPut=intOutPut+1;
    }
      

  8.   

    以前还没用过日历控件,不过经验证
    Sorder(剑客)的方法完全可行,
    不过你必须添加
    Using System.Globalization;命名空间