计算两个日期之间的星期日或星期六数量
给出年月日计算星期几

【转】给出年月日,计算星期几--算法及算法来历最常见的公式:W =[Y-1] + [(Y-1)/4] -[(Y-1)/100] + [(Y-1)/400] + DY是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
最好用的是蔡勒公式:W = [C/4]- 2C+ y + [y/4] + [13 *(M+1) / 5] + d- 1C是世纪数减一,y是年份后两位,M是月份,d是日数。
1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。
两个公式中的[...]均指只取计算结果的整数部分。
算出来的W除以7,余数是几就是星期几。
如果余数是0,则为星期日。
---------------------------------------------------------------------------星期制度是一种有古老传统的制度。
据说因为《圣经·创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。
从实际的角度来讲,以七天为一个周期,长短也比较合适。
所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
在日常生活中,我们常常遇到要知道某一天是星期几的问题。
有时候,我们还想知道历史上某一天是星期几。
通常,解决这个方法的有效办法是看日历,但是我们总不会随时随身带着日历,更不可能随时随身带着几千年的万年历。
假如是想在计算机编程中计算某一天是星期几,预先把一本万年历存进去就更不现实了。
Access中的常用函数

Access中的常用函数1.Count 函数计算查询所返回的记录数语法Count(expr)expr 占位符代表字符串表达式,它标识的字段包含了要统计的数据,或者是使用该字段的数据执行计算的表达式。
expr 中的操作数可包括表字段名或函数名(可以是固有的或者用户自定义的函数,但不能是其他 SQL 聚合函数)。
可以统计包括文本在内的任何类型数据。
说明可以使用Count来统计基本查询的记录数。
例如,可以通过Count来统计已发往特定城市的定单数目。
尽管 expr 能够对字段执行计算,但是Count仅仅计算出记录的数目。
记录中所存储的数值类型与计算无关。
Count函数不统计包含Null字段的记录,除非 expr 是星号 (*) 通配符。
如果使用了星号通配符,Count会计算出包括包含Null字段在内的所有记录的数目。
使用Count(*)方式比使用Count([Column Name])方式快很多。
不要用单引号 (' ') 将星号括起来。
下面的示例计算 Orders 表中的记录数目。
SELECT Count(*)AS TotalOrders FROM Orders;如果 expr 标识多个字段,那么Count函数仅统计至少有一个字段为非Null值的记录。
如果所有指定字段均为Null值,那么该记录不被统计在内。
可以使用 & 号分隔字段名。
下面的示例显示了如何将计算限于那些 ShippedDate 或 Freight 为非Null值的记录:SELECTCount('ShippedDate & Freight')AS [Not Null] FROM Orders;可以在查询表达式中使用Count。
也可以将该表达式用于QueryDef对象的SQL属性中,或者在基于 SQL 查询创建Recordset对象时使用该表达式。
2.Min、Max 函数返回包含在查询的指定字段内的一组值中的最小和最大值。
小学数学星期几计算

一、计算出要过多少天(若是同月,后面的日期-前面的日期;若是不同月,将所有月份的天数加起来,当月就用当月的天数减去当前日期)。
二、计算出多少周余多少天三、根据余数计算出是星期几当前日期加余数即为推算出的星期。
若和大于7,则用和再减去7的得数即为星期。
1、3月1日是星期六,3月15日是星期几?3月19日呢?第一问:求出经过了几天先算15-1=14(天)再算14÷7=2(周)也就是刚好过了2个星期。
所以3月15日还是星期六。
第二问:19-1=18(天)18÷7=2(周)……4(天),也就是两个星期多4天。
先看过了2个星期,还是星期六。
那么,现在就只要知道,再过4天是星期几就可以了。
6+4=10注意:如果加起来的数字大于7,应该减去7,才是星期几。
10-7=3所以,3月19日是星期三。
练习1:3月1日是星期六,求4月1日是星期几?(3月有31天)31÷7=4(周)……3(天)也就是四个星期多3天。
先看过了4个星期,还是星期六。
那么,现在就只要知道,再过3天是星期几就可以了。
6+3=99-7=2所以,4月1日是星期二。
练习2:4月2日是星期三,5月2日是星期几?5月7日呢?30÷7=4(周)……2(天)3+2=5所以,5月2日是星期五。
从5月2日到5月7日又过了:7-2=5(天)4月2日到5月7日一共过了:30+5=35(天)35÷7=5(周)所以,5月7日还是星期三5月1号星期二,那么5月29日是星期几?(29-1)÷7=4(个)星期二今天是星期三,再过30天是星期几?30÷7=4(个)……2(天)星期五某年2月份星期三的天数比星期二的天数多, 该月的14日是星期几?由题意可知:2月1日是星期三(14-1)÷7=1(个)……6(天)星期二今天是星期一,从今天起,第30天是星期()(30-1)÷7=4(个)……1(天)星期二有一天,小明很高兴地对妈妈说:“今天是您的生日,正巧是星期日,我们可以给您好好庆祝一下。
计算任何一个日期的星期数

星期数的计算懂得公历日期变化规律的人都可以将一个日期的星期数计算出来,如果不知道正确的方法可能会很是麻烦。
现在我们给出一个方便的计算星期数的公式,为此首先规定:星期日=0,星期一=1,星期二=2,星期三=3,星期四=4,星期五=5,星期六=6另外注意闰年比平年多加的一天不是年头也不是年尾,而是在2月29日,所以为了计算方便,我们把3月作为一年的第一个月,4月作为一年的第二个月……而1月、2月则分别为去年的第十一个月和第十二个月。
作了这样的规定之后,1997年7月1日就要写为1997年“5月”1日,2000年1月2日就要写为1999年“11月”2日。
现在假定给出一个日期:N年m月d日(年份N=100c+y,其中c为世纪数,y为年代数),则该日期的星期数W=d+[ (13m-1)]+y+[ y]+[ c]-2c(mod7)其中方括号表示不超过这个数的最大整数,mod为数学符号,如a(modb)表示一个数,此数在0到b范围内(若b小于零,则在b到0范围内),若a∈[0,b),则a(modb) =a,若a不在0到b范围内,则a(modb)等于a加或减b的整数倍后处于0到b范围内的一个值。
这里值得注意的是,目前国际通用的公历是教皇格里高利十三实行的。
当时他召集了很多学者和僧侣讨论历法改革问题,决定采用业余天文学家利里奥的方案,没四百年去掉三个闰日。
公元1582年格里高利颁发改历的命令:(1)把1582年10月4日后的一天改为1582年10月25日;(2)那些世纪数不能被4整除的世纪年,如1700、1800、1900、2100、……不再作为闰年,仍算为平年。
这两条规定至为重要,第一条规定实质上把春分固定在3月21日左右,解决了日历与天时不符合的矛盾,第二条规定使历法的精度大大提高,保证了这种历法在相当长的时间里仍能实用。
根据这项规定,每400年中有97个闰年,总天数为365×400+97=146097(天)因此平均每年的长度为146097÷400=365.2425(天)这与回归年实际值365.2422天相差仅有0.0003天,换句话说,要经过3300多年,两者才有一天的相差。
[VIP专享]数量关系之日期星期问题
![[VIP专享]数量关系之日期星期问题](https://img.taocdn.com/s3/m/51e5ce6604a1b0717fd5dda7.png)
88.8918÷1.2990÷.1=4214÷3922=.0034=1÷15251371=8535.78.208÷023.2173c00÷1*m=29030.3922c=.1÷20m3=2÷120252.=3535=42314c)*523m240341*31.252=31*.1.535.*031342.*9205221.04.455=+213*05*2022.02.854850.3150.*+58c12*5m1*202+.050+0.014*85.20*051000+0+03/8T.+0÷+=55+1*011+010+91÷01454050*0010200+5+0+080+400*+4**1*1510.3910%*C%-*6+÷M(=*M=5÷50)*30*31(÷3110*5+**÷4*1m243.%71e=78%n0)8=8s.5=77.93c.6c0mmc.4*m1*31,0w199o.k2.m4c-cem.5mn2csp26m659*.0.34-50.60c5*pm.3c85m9,c05g.m.05i0rp-l.s.85p6/c50bcm0.om7py.c.6spm5c+mc;0m..7.cmk ; 1+1k+12+1+k2234=1c+m1++4+4+2
1) B2Ak+22+1=2+15+c51mc+=m5=21c11+m++12+2+1++=212=2+1+2+1+2+2+22+32k+1+2
蔡勒公式——计算星期几

如何计算某一天是星期几?——蔡勒(Zeller)公式历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(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。
你的生日(出生时、今年、明年)是星期几?不妨试一试。
不过,以上公式只适合于1582年10月15日之后的情形(当时的罗马教皇将恺撒大帝制订的儒略历修改成格里历,即今天使用的公历)。
过程的推导:(对推理不感兴趣的可略过不看)星期制度是一种有古老传统的制度。
据说因为《圣经·创世纪》中规定上帝用了六天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期日是休息日。
从实际的角度来讲,以七天为一个周期,长短也比较合适。
所以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
推算星期几

余菲(浙江省衢州市巨化第一小学)小朋友,已知某一天是星期几,推算这一天之前或之后的某一天是星期几,可以按下面的步骤思考:(1)先算出两个日期之间经过的天数;(2)用经过的天数除以7,看余数是几;(3)推算未来的某一天是星期几,可根据余数是几,把星期数向后推几天;如果推算过去的某一天是星期几,可根据余数是几,把星期数向前推几天。
例题12023年4月20日是星期四。
(1)2023年4月的最后一天是星期几?(2)2023年的4月3日是星期几?(1)4月有30天,从2023年4月20日到2023年4月30日,经过了30-20=10(天)。
2023年4月20日是星期四,从4月20日开始,经过1天是星期五,经过2天是星期六,经过3天是星期日,经过4天是星期一,经过5天是星期二,经过6天是星期三,经过7天是星期四,经过8天是星期五,经过9天是星期六,经过10天是星期日,所以2023年4月的最后一天是星期日。
上文的计算很烦琐,你会发现,每经过7天是一个周期,所以也可以这样计算,10÷7=1(周期)……3(天)。
从4月20日开始,经过了1个周期多3天,因为1个周期后是星期四,再往后推3天是星期日,所以2023年4月的最后一天是星期日。
(2)从2023年4月3日到2023年4月20日经过了20-3=17(天),17÷7=2(周期)……3(天)。
从4月20日往前推2个周期还是星期四,再往前推1天是星期三,往前推2天是星期二,往前推3天是星期一,所以2023年的4月3日是星期一。
例题22023年的儿童节是星期四。
(1)2023年我国的建军节是星期几?(2)2023年的劳动节是星期几?(1)儿童节是6月1日,我国的建军节是8月1日。
先计算从2023年6月1日到2023年8月1日经过的天数。
6月有30天,从6月1日到6月30日经过了30-1=29(天),7月有31天。
从2023年6月1日到2023年8月1日,经过了29+31+1=61(天)。
Java中计算任意两个日期之间的工作天数

/**
* Created on
2013-8-15
* <p>Title:
[公共类]_[日期比较,日期之间的时间间隔(天数)]</p>
* <p>Description: [计算任意 2 个日期内的工作日、休息日、天数间隔(没有考虑到国定
假日)]</p>
* <p>Copyright: xuqb(c) 2013</p>
这 个 偏 移 量 ( date_end_change ) 是 需 要 减 去 的 。 最 后 我 们 只 要 用
tmpWorkingDays+date_start_change-date_end_change 就是我们所要求的实际工作日了。以
下是所有实现代码(两个日期跨年也没有问题)。
/**本公共类绝对好用、能用!经久考验、测试通过。可以计算出指定的两个年月日之间的工作
charge_end_date = etmp - 1; // 结束日期为星期六和星期日时偏移量为 0 } result = (getDaysBetween(this.getNextMonday(d1), this.getNextMonday(d2)) / 7) * 5 + charge_start_date - charge_end_date; //System.out.println("charge_start_date>" + charge_start_date); //System.out.println("charge_end_date>" + charge_end_date); //System.out.println("between day is-->" + betweendays); return result; }