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

如今在程序时代,什么都用程序来解决。那当然是很方便的。因此,你问我2003年10月1日是星期几,我很可能就会直接用程序来告诉你。

echo date(‘w‘,strtotime(‘2003-10-1‘));

但事实上,我们也都知道,PHP的date函数是有时间范围区间的,即只能从1970~2038年,因此在这个区间范围之外的算法都是不准的。那倒 底怎么算呢?其实是有一个公式的:

蔡 勒(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。

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

时间: 2024-10-25 05:22:11

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

javascript 字符串转日期 获取当天是星期几

服务器传回日期字符串 格式如下: 2015-01-20 12:03:12 2015-01-19 19:10:00 2015-01-19 12:00:00 2015-01-19 08:41:00 2015-01-16 12:23:46 要求 判断该日期是星期几 转成如下格式: 首先把字符串转换成日期格式 查了一些方法 下面这个最简单 var str = '2015-01-20 12:03:12'; dateStr = dateStr.replace(/-/g,'/'); var date = ne

计算当天为星期几

想知道某个日期是星期几时,不一定要打开日历才能找出来.只要学会以下这个方程式,任何日期都可以算出是星期几. 首先,让我们先看看以下这三个表格里面的代码. | 星期 | 代码 || 星期日 | 0 || 星期一 | 1 || 星期二 | 2 || 星期三 | 3 || 星期四 | 4 || 星期五 | 5 | | 星期六 | 6 | | 月份 | 代码 || 一月 | 6 || 二月 | 2 || 三月 | 2 || 四月 | 5 || 五月 | 0 || 六月 | 3 || 七月 | 5 ||

格式化日期(月和星期)

// /**// * 格式化日期(月和星期)// * sFormat:日期的格式(如yy-MM-dd).年:y,月:M,日:d,时:h,分:m,秒:s// * sLanguage: 默认为中文.当为'en'的时候是英文.// */// window.dateFormat=function(date, sFormat, sLanguage){// var time = {};// time.Year = date.getFullYear();// time.TYear = ("" + t

日期间隔,当前是星期几

获取未来某一日期是星期几 /** *  获取未来某个日期是星期几 *  注意:featureDate 传递过来的格式 必须 和 formatter.dateFormat 一致,否则endDate可能为nil * */ - (NSString *)featureWeekdayWithDate:(NSString *)featureDate{ // 创建 格式 对象 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 设置

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 

js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子

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()

jQuery日期获取月和星期

1 <div: id="clock"></div:> 2 <script> 3 function a(clock){ 4 var now =new Date(); 5 var month=now.getMonth()+1; 6 var day=now.getDay(); 7 var s=now.getSeconds(); 8 var arr=new Array("星期日","星期一","星期二&quo

日期类问题-判断星期几

题目及思路: 代码: #include <stdio.h> #include <string.h> int isLeapYear(int x){//1代表闰年 if( (x%4==0 && x%100!=0) || x%400==0) return 1; return 0; } int dayOfMonth[13][2]{ 0,0, 31,31, 28,29, 31,31, 30,30, 31,31, 30,30, 31,31, 31,31, 30,30, 31,3

万年历(C语言版)

#include <stdio.h> //判断输入的年份是否是闰年 int IsLeap(int year) { if((year%400==0) || ((year%4==0)&&(year%100!=0))) return 1; else return 0; } int Day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //计算一个月的最大天数(上一个月) int Max_day(int year,int month) { if(