玖叶教程网

前端编程开发入门

通过日期即可得到星期几,神奇哦(如何通过日期知道星期几)

最近在学习过程中需要通过日期来确定当天为星期几,虽然很多编程语言有封装好的方法,但每种语言在命名和使用上也不一定相同,那么是否能够找到一种通用的方法呢,还真找到了。


背景知识介绍:

基姆拉尔森计算公式

W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日数,m表示月份数,y表示年数。W为计算得出的星期几(0~6 表示星期一 到 星期日)

注意:在公式中有个与其他公式不同的地方:把1月和2月看成是上一年的13月和14月,

例: 如果是2017-01-01则换算成:2016-13-01来代入公式计算。

如果是2017-02-01则换算成:2016-14-01来代入公式计算。

开始布局界面

利用编程语言C#布局一个简单界面,如下:

开始编写代码吧,先编程实现基姆拉尔森计算公式:

public static String GetWeekByDate(int year, int month, int day)

{

String dayoftheweek = String.Empty;

if (month == 1 || month == 2)

{

month += 12; //month = month + 12;

year--; //year = year - 1;

}

int w = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;

switch (w)

{

case 0:

dayoftheweek = "星期一";

break;

case 1:

dayoftheweek = "星期二";

break;

case 2:

dayoftheweek = "星期三";

break;

case 3:

dayoftheweek = "星期四";

break;

case 4:

dayoftheweek = "星期五";

break;

case 5:

dayoftheweek = "星期六";

break;

case 6:

dayoftheweek = "星期日";

break;

}

return dayoftheweek;

}

重点代码已完成,接着给Button来个点击事件吧

private void button1_Click(object sender, EventArgs e)

{

//获取选择的日期,以yyyy-MM-dd(例2017-01-01)显示字符串

String date = dateTimePicker1.Value.ToString("yyyy-MM-dd");

//通过符号 - 将获取的日期进行分割并组合成数组

String[] temp = dateTimePicker1.Value.ToString("yyyy-MM-dd").Split('-');

//获取数组中 年 -- temp[0] 月 -- temp[1] 日 -- temp[2]

//并且将值代入静态方法GetWeekByDate中来得到星期几

//Convert.ToInt32() 方法将string转换为int

textBox1.Text = date + " 为 " + GetWeekByDate(Convert.ToInt32(temp[0]), Convert.ToInt32(temp[1]), Convert.ToInt32(temp[2]));

}

到这里,大功告成,直接来看运行的效果

用其他编程语言借助基姆拉尔森计算公式同样可以写出计算星期几的程序,基本就实现通用啦,感兴趣的小伙伴自己动手试试吧。你不去做,永远不知道自己能力有强!加油

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言