• C#实现的根据日期得到今天是星期几


    算法如下: 
      基姆拉尔森计算公式: W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
      在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方:
      把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
    但是在测试的时候发现有点出入,就是公式存在一点问题,得稍做修改:
     W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 +1
    代码如下:

    #region 根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);)
            /// <summary>
            /// 根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);)
            /// </summary>
            /// <param name="y">年</param>
            /// <param name="m">月</param>
            /// <param name="d">日</param>
            /// <returns></returns>
            public static string CaculateWeekDay(int y,int m, int d)
            {
                if(m==1) m=13;
                if(m==2) m=14;
                int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1; 
                string weekstr="";
                switch(week)
                {
                    case 1: weekstr="星期一"; break;
                    case 2: weekstr="星期二"; break;
                    case 3: weekstr="星期三"; break;
                    case 4: weekstr="星期四"; break;
                    case 5: weekstr="星期五"; break;
                    case 6: weekstr="星期六"; break;
                    case 7: weekstr="星期日"; break;
                }

                return weekstr; 
            }
            #endregion

    在开发网站的过程中,如开发新闻网站、论坛、聊天室等,都需要获取当前系统日期,本实例介绍如何获取系统日期并将系统日期用不同的格式显示出来。实例运行结果如图7.1所示。

    获取当前系统日期并将其转化为短日期格式的代码如下:

    Label1.Text = System.DateTime.Now.ToShortDateString();

    获取当前系统日期并将其转化为长日期格式的代码如下:

    Label2.Text = System.DateTime.Now.ToLongDateString();

    注意:DateTime对象中的Now属性可以用DateTime对象中的Today属性代替,DataTime.Now属性与DataTime.Today属性都是用来获取当前系统时间的。



    在开发游戏类网站时,往往需要将玩家的闯关时间记录下来,设立排行榜,增强游戏的趣味性。本实例将会介绍如何获取当前系统时间并将其格式化。实例运行结果如图7.2所示。

    获取当前系统时间并将其转化为短时间格式的代码如下:

    Label1.Text = System.DateTime.Now.ToShortTimeString();

    获取当前系统日期并将其转化为长日期格式的代码如下:

    Label2.Text = System.DateTime.Now.ToLongTimeString();



    一些网站的首页会将当前系统日期和时间都显示出来,以美化网站。本实例介绍如何同时获得系统当前日期和时间。实例运行结果如图7.3所示。

    同时获得系统当前日期和时间的代码如下:

      Label1.Text = DateTime.Now.ToString();



    在本实例中,主要实现的是使用DateTime结构的DayofWeek属性来获取当前日期是星期几,并将返回指定日期是星期几的英文单词转化为相应的汉字。代码如下:

    public static string dt;

        public static string week;

        protected void Button1_Click(object sender, EventArgs e)

        {

            //获取当前日期是星期几

            dt = DateTime.Today.DayOfWeek.ToString();

            //根据取得的英文单词返回汉字

            switch (dt)

            { 

                case "Monday":

                    week ="星期一";

                    break ;

                case "Tuesday":

                    week = "星期二";

                    break;

                case "Wednesday":

                    week = "星期三";

                    break;

                case "Thursday":

                    week = "星期四";

                    break;

                case "Friday":

                    week = "星期五";

                    break;

                case "Saturday":

                    week = "星期六";

                    break;

                case "Sunday":

                    week = "星期日";

                    break;

            }

            //利用TextBox文本框显示当前日其为星期几

            TextBox1.Text = week;

        }

    }



    本实例主要是获取指定年份中的天数,首先使用DateTime结构的Year属性来取得年份,然后根据DateTime结构的IsLeapYear方法来判断取得年份是否为闰年,如果为闰年,则显示“366天”,否则显示“365天”。代码如下:

    protected void Button1_Click(object sender, EventArgs e)

        {

            //判断是否是闰年

            if (DateTime.IsLeapYear(Convert.ToInt32(DateTime.Now.Year.ToString())))

                {

                    //如果是闰年

                    TextBox1.Text = "366";

                }

                else

                { 

                    //如果不是闰年

                    TextBox1.Text = "365";     

                }

        }



    本实例主要获取当前月的天数,使用DateTime结构的Year和Month属性取得当前日期所在的年和月,然后在switch语句中根据不同的年份和月份返回指定月份的天数。代码如下:

    public static int year;

        public static int month;

        public static int days;

        protected void Button1_Click(object sender, EventArgs e)

        {

            year = DateTime.Now.Year;

            month = DateTime.Now.Month;

            //得到当前月的天数

            switch (month)

            { 

                case 1:

                    days = 31;

                    break;

                case 2:

                    if (DateTime.IsLeapYear(year))

                    {

                        //闰年二月为29天

                        days = 29;

                    }

                    else

                    { 

                        //不是闰年,二月为28天

                        days = 28;

                    }

                    break;

                case 3:

                    days = 31;

                    break;

                case 4:

                    days = 30;

                    break;

                case 5:

                    days = 31;

                    break;

                case 6:

                    days = 30;

                    break;

                case 7:

                    days = 31;

                    break;

                case 8:

                    days = 31;

                    break;

                case 9:

                    days = 30;

                    break;

                case 10:

                    days = 31;

                    break;

                case 11:

                    days = 30;

                    break;

                case 12:

                    days = 31;

                    break;

            }

            TextBox1.Text = days.ToString();

        }



    本实例主要实现“取得当前日期的前一天”功能,使用了DateTime结构的AddDays方法,在指定的DateTime实例的值上加上“-1”天取得所要的结果。代码如下:

    protected void Button1_Click(object sender, EventArgs e)

        {

            TextBox1.Text = DateTime.Now.AddDays(-1).ToString();

        }

    在DataTime结构中,与AddDays方法实现功能相类似的方法如表7.1所示。

    表7.1                                            将日期格式化为指定格式常用方法

    方 法 名 称
    说    明

    Add
    将指定的TimeSpan的值加到实例的值上

    AddHours
    将指定的小时数加到实例的值上

    AddMilliseconds
    将指定的毫秒数加到实例的值上

    AddMinutes
    将指定的分钟数加到实例的值上

    AddMonths
    将指定的月份数加到实例的值上

    AddSeconds
    将指定的秒数加到实例的值上

    AddYears
    将指定的年份加到实例的值上




    TimeSpan对象表示时间间隔或持续时间,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。在本实例中,首先定义了两个时间dateTime1和dateTime2,并分别为其赋值,然后定义了一个TimeSpan对象,并将dateTime1和dateTime2之间的时间间隔赋给TimeSpan对象。代码如下:

       DateTime dateTime1 = DateTime.Parse(DateTime.Now.AddSeconds(30).ToString());

       DateTime dateTime2 = DateTime.Parse(DateTime.Now.ToString());

       TimeSpan timeSpan = dateTime1 - dateTime2;

       TextBox1.Text =timeSpan.ToString();

    //-----------------------------------------------------------------------------------------------------------

      一周从周日算起   
      DateTime   mDatetime=new   DateTime(year,1,1);//year为要求的那一年   
      int   firstweekfirstday=Convert.ToInt32(mDTime.DayOfWeek);//一年中第一天是周几   
      days=(double)(6-firstweekfirstday);   
      DateTime   secondweekfisrtday=mDTime.AddDays(days);第二周一   
      fisrtday=MDatetime.AddDays(week*7);//第N周第一天   
      lastday=MDatetime.AddDays(week*7+6);//第N周最后一天   
        
      一周从周一算起   
      DateTime   mDatetime=new   DateTime(year,1,1);//year为要求的那一年   
      int   firstweekfirstday=Convert.ToInt32(mDTime.DayOfWeek);//一年中第一天是周几   
      days=(double)(7-firstweekfirstday);   
      DateTime   secondweekfisrtday=mDTime.AddDays(days);第二周一   
      fisrtday=MDatetime.AddDays(week*7);//第N周第一天   
      lastday=MDatetime.AddDays(week*7+6);//第N周最后一天   

    javascript:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript" type="text/javascript">
    function showDateCount(year,weekNum){
     var date=new Date(year,0,(7*weekNum));
     var FD=new Date(date.getYear(),(date.getMonth()),(date.getDate()-date.getDay()+1))
     var Monday=FD.getYear()+"-"+(FD.getMonth()+1)+"-"+FD.getDate()//一周的第一天
     
     var LD=new Date(date.getYear(),(date.getMonth()),(date.getDate()-date.getDay()+7))
     var Sunday=LD.getYear()+"-"+(LD.getMonth()+1)+"-"+LD.getDate() //一周的最后一天
     alert(year+"年第"+weekNum+"周是"+Monday+"至"+Sunday)
    }
    </SCRIPT>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD>

    <BODY>
    <input type="text" value="2007" size="20" name="year">年<input type="text" name="weekNum" value="30" size="20">
    <input type="button" name="GO" value="Click" onClick="showDateCount(year.value,weekNum.value)">

    </BODY>
    </HTML>

     c#
    //monthCalendar1是日历控件
     System.Globalization.ChineseLunisolarCalendar c = new ChineseLunisolarCalendar();
            private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
            {
                DateTime MySelectDate = e.End;
                txt_nonglidate.Text = string.Format(CultureInfo.InstalledUICulture, "{0}-{1}-{2}", c.GetYear(MySelectDate), c.GetMonth(MySelectDate), c.GetDayOfMonth(MySelectDate));
            }

  • 相关阅读:
    const变量指针赋值给非const类型的指针运行结果
    嵌套结构可以访问外部结构的私有成员吗?
    几种cms的介绍
    中国互联网网站尴尬排行榜[转]
    如何跨域来同步不同网站之间的Cookie
    CMS整站程序整理
    vs 设置断点
    ASP.NET 4中的SEO改进
    VSS演示
    发生一个未处理的异常 脚本调试 错误号2912
  • 原文地址:https://www.cnblogs.com/Xujg/p/3969513.html
Copyright © 2020-2023  润新知