.NET中根据日起求周别,或者根据周别求日期的方法

原创 2006年06月03日 16:26:00

以下方法供大家参考,若想返回日期类型,自己修改.

using System;
using System.Web.UI;
using System.Globalization;

public partial class CSDateTime : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("今天是第几周? -- ");
        Response.Write(GetWeekOfYear(DateTime.Now));
        Response.Write("<br>");
        Response.Write("第200602周的日期起讫? -- ");
        Response.Write(GetWeekFirstDay("200602"));
        Response.Write(" - ");
        Response.Write(GetWeekLastDay("200602"));
        Response.Write("<br>");
        Response.Write("第200622周包含哪些日期? -- ");
        string[] day = GetWeekRange("200622");
        for (int i = 0; i < 7;i++ )
        {
            Response.Write(day[i] + " ");
        }
    }
   
    /// <summary>
    /// 求指定日期的周别,周别的第一天为星期天
    /// </summary>
    /// <param name="dt">某一天</param>
    /// <returns>返回的周别格式如200601,表示2006年度第一周</returns>
    private string GetWeekOfYear(DateTime dt)
    {
        CultureInfo ci = CultureInfo.CurrentCulture;
        Calendar calendar = ci.Calendar;
        CalendarWeekRule rule = ci.DateTimeFormat.CalendarWeekRule;
        DayOfWeek dow = ci.DateTimeFormat.FirstDayOfWeek;
        int week = calendar.GetWeekOfYear(dt, rule, dow);
        string weekId = dt.Year + week.ToString("00");
        return weekId;
    }
   
    /// <summary>
    /// 求指定周别的第一天
    /// </summary>
    /// <param name="weekId">周别,格式如200601</param>
    /// <returns>返回日期的yyyy-MM-dd字串</returns>
    private string GetWeekFirstDay(string weekId)
    {
        int year = int.Parse(weekId.Substring(0,4));
        DateTime newYearDay = new DateTime(year,1,1);
        int firstweekfirstday = Convert.ToInt32(newYearDay.DayOfWeek);
        int days = (int)(7-firstweekfirstday);
        DateTime secondweekfisrtday = newYearDay.AddDays(days);
        int week = int.Parse(weekId.Substring(4, 2));
        string firstdate = secondweekfisrtday.AddDays((week - 2) * 7).ToString("yyyy-MM-dd");
        return firstdate;
    }
   
    /// <summary>
    /// 求指定周别的最后一天
    /// </summary>
    /// <param name="weekId">周别,格式如200601</param>
    /// <returns>返回日期的yyyy-MM-dd字串</returns>
    private string GetWeekLastDay(string weekId)
    {
        int year = int.Parse(weekId.Substring(0, 4));
        DateTime newYearDay = new DateTime(year, 1, 1);
        int firstweekfirstday = Convert.ToInt32(newYearDay.DayOfWeek);
        int days = (int)(7 - firstweekfirstday);
        DateTime secondweekfisrtday = newYearDay.AddDays(days);
        int week = int.Parse(weekId.Substring(4, 2));
        string lastdate = secondweekfisrtday.AddDays((week - 2) * 7+6).ToString("yyyy-MM-dd");
        return lastdate;
    }
   
    /// <summary>
    /// 求指定周别的日期范围
    /// </summary>
    /// <param name="weekId">周别,格式如200601</param>
    /// <returns>返回日期的yyyy-MM-dd字串</returns>
    private string[] GetWeekRange(string weekId)
    {
        string[] day = new string[7];
        int year = int.Parse(weekId.Substring(0, 4));
        DateTime newYearDay = new DateTime(year, 1, 1);
        int firstweekfirstday = Convert.ToInt32(newYearDay.DayOfWeek);
        int days = (int)(7 - firstweekfirstday);
        DateTime secondweekfisrtday = newYearDay.AddDays(days);
        int week = int.Parse(weekId.Substring(4, 2));
        DateTime firstdate = secondweekfisrtday.AddDays((week - 2) * 7);
        DateTime lastdate = secondweekfisrtday.AddDays((week - 2)*7 + 6);
        day[0] = firstdate.ToString("yyyy-MM-dd");
        for (int i=1;i<=5;i++)
        {
            day[i] = firstdate.AddDays(i).ToString("yyyy-MM-dd");
        }
        day[6] = lastdate.ToString("yyyy-MM-dd");
        return day;
    }

}

asp.net关于时间方法,当前月有多少天、求某年有多少周、求当前日期是一年的中第几周

/// 当前月有多少天         ///         ///         ///         ///         public static int...

在ASP.NET中使用IHttpHandler处理请求(如自实现AJAX)时,无法获得Session(或者说是Session 为 null)的原因及解决方法

本文以CSDN以前的一个帖子为线索,结合自己的使用经历,讨论了“使用IHttpHandler得到Session时总是为null”的原因,并给出了解决的方法。...
  • lslxdx
  • lslxdx
  • 2011年04月07日 20:32
  • 1094

VB.NET日期时间值建立方法

  • 2013年05月03日 20:17
  • 1KB
  • 下载

ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换

using System; using System.Globalization; public class SamplesDTFI { public static void Main(...

c#.net 获取时间日期年月日时分秒生成自动文件名格式

下面是日期和时间的各种方法,转换为字符串。  如果把输出的格式改下就可以做类似的文件名了,例如:2016010110101224356.doc  c#用DateTime.Now.ToString...
  • qqxinxi
  • qqxinxi
  • 2016年01月03日 09:14
  • 3263

ASP.NET C# 日期时间年月日时分秒格式及转换

DateTime time=DateTime.Now;   //2010-5-28  11:22:02.4552691 星期五                 time.To("y")  ...

c#.net 获取时间日期年月日时分秒格式

DateTime dt = DateTime.Now;  //当前时间   //获取当天             dtpStartDate.Text = DateTime.Now.ToLongDa...

[本周] 随手记下 Asp.net 5种页面转向方法

上周随手记下 Asp.net中Application Session Cookie ViewState Cache Hidden,本来感觉应该没有什么问题的,大家还是指出了遗漏甚至是错误的知识点,在此...

一个用于制作C# 或者VB.NET编辑器

  • 2008年06月10日 18:38
  • 7.42MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET中根据日起求周别,或者根据周别求日期的方法
举报原因:
原因补充:

(最多只允许输入30个字)