黑马程序员-类 基姆拉尔森

来源:互联网 发布:护国神翼wings知乎 编辑:程序博客网 时间:2024/05/30 05:41
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

百度百科上关于基姆拉尔森计算公式只给出了java算法,自己整理了下C#的算法。。

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

 public class b        {            int y, m, d;            public b(int y, int m, int d)            {                this.y = y;                this.m = m;                this.d = d;            }          public string CaculateWeekDay(int y, int m, int d)            {                if (m == 1 || m == 2)                {                    m += 12;                    y--;         //把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。                }                int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;                string weekstr = "";                switch (week)                {                    case 0: weekstr = "星期一"; break;                    case 1: weekstr = "星期二"; break;                    case 2: weekstr = "星期三"; break;                    case 3: weekstr = "星期四"; break;                    case 4: weekstr = "星期五"; break;                    case 5: weekstr = "星期六"; break;                    case 6: weekstr = "星期日"; break;                }                return weekstr;            }        }                private void button1_Click(object sender, EventArgs e)        {              int   y = Convert.ToInt32(textBox1.Text);          int m = Convert.ToInt32(textBox2.Text);          int d = Convert.ToInt32(textBox3.Text);          b a = new b(y,m,d);          label1.Text = a.CaculateWeekDay(y, m, d);         }    }
ok。。。就是这样

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com
0 0