根据日期获得当天是星期几

蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1  

公式中的符号含义如下,

w:星期;

c:世纪-1;

y:年(两位数);

m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);

d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。) 

算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。   

以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下: 
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1  
=49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1  
=49+[12.25]+5-40+[28.6]  
=49+12+5-40+28  
=54 (除以7余5)  

即2049年10月1日(100周年国庆)是星期5。   

你的生日(出生时、今年、明年)是星期几?不妨试一试。 

C# Code:

/// <summary>
/// 计算输入日期的星期
/// </summary>
/// <param name="year">年份,yyyy格式 如:2009</param>
/// <param name="month">月份:1到12之间的整数</param>
/// <param name="day">日期:1到31之间的整数</param>
/// <returns>星期数,1至7之间 1代表星期一,7代表星期天</returns>
int Week(int year, int month, int day)
{
    if (month == 1 || month == 2)
    {
        month += 12;
        year -= 1;
    }
    int week = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;
    return (week + 1);
}

转自:@阿良.NET

时间: 2024-12-31 04:09:10

根据日期获得当天是星期几的相关文章

根据日期知道当天是星期几的手动计算方法_MsSql

 蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月1日来计算):d:日:[ ]代表取整,即只要整数部分.(C是世纪数减一,y是年份后两位,M是月份,d是日数.1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值.) 算出来的

根据日期知道当天是星期几的手动计算方法

蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月1日来计算):d:日:[ ]代表取整,即只要整数部分.(C是世纪数减一,y是年份后两位,M是月份,d是日数.1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值.) 算出来的W

js获取指定日期周数以及星期几的小例子_javascript技巧

JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 代码如下: function getNowFormatDate(theDate) { var day = theDate; var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year= day.getFullYear();// ie火狐下都可以 Month= day.getMonth()+

js实现日历可获得指定日期周数及星期几示例分享

 编写一个简易日历.在文本框中输入要查找的日期,程序可以计算出这一天处在该年份的第几周,并且能判断出这一天到底是星期几,需要的朋友可以参考下 应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧. 我将显示部分用html 写好,点击的按钮触发事件函数是check():    代码如下: function onCheck(){  var Year = document.getElementById("year").value; //获取文本框的"年" var t

Shell根据日期、月份、星期判断年份的代码_linux shell

已知三个时间变量: time1="Fri Aug 23 11:35:21" time2="Mon Sep 2 16:18:09" time3="Tue Sep 3 16:06:33" 已知这三个时间可以确定是发生在2011-2013年,如何快速确定是哪一年呢? 希望输出: time1="2013/8/23 11:35:21" time2="2013/9/2 16:18:09" time3="201

js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)_基础知识

应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧. 我将显示部分用html 写好,点击的按钮触发事件函数是check(): 复制代码 代码如下: function onCheck(){ var Year = document.getElementById("year").value; //获取文本框的"年" var theYear =Year * 1; //转换为number类型 //alert(theYear); // 获取月值 var month =

从数据库获取日期,判断是星期几,输出星期。

问题描述 session("nowsdates")=month(now)dimsqlnowdates,inowdates,dates1,countsdatessetrsnowdates=server.CreateObject("ADODB.Recordset")sqlnowdates="selectcount(ID)asnofromyy_tjxhzwhereyydatelike'%-"&cint(session("nowsdat

PLSQL实现显示当天是星期几

点击(此处)折叠或打开 set serveroutput on declare   v_day varchar2(20); begin   v_day := to_char(sysdate,'Day');   dbms_output.put_line('Today is '||v_day); end; /

PLSQL实现显示当天是星期几及当前时间

点击(此处)折叠或打开 set serveroutput on declare   v_day varchar2(20); begin   v_day := to_char(sysdate,'Day,HH24:MI');   dbms_output.put_line('Today is '||v_day); end; /