实验2被测程序功能:计算输入的日期是星期几表格。

实验2被测程序功能:计算输入的日期是星期几表格。

周期问题——《巧算“星期几”》

周期问题——《巧算“星期几”》 教学目标: 1、根据时间、日期的知识,解决一些时间问题。 2、掌握计算共经过的天数: 从头到尾总天数除以7得出的余数是几,就从第一周期第一项开始数几,即可推知是星期几。算头不算尾、算尾不算头的总天数除以7得出的余数是几,就从第一周期第一项的下一项开始数几,推知是星期几。 教学过程: 一、实践畅销 1、探究1: 平南小学从2011年12月1日到2011年12月20日举行第三届英语节活动,活动一共举行了多少天? T::请独立思考,比一比谁能快速得出结果? S1:20天S2:19天 T:谁的想法对?用什么方法验证? S:可以将日期列一列。 S:可以列算式20-1=19 19+1=20 T:为什么要加1?(头尾都要算,所以要加1) 小结:计算从某年(月日)起到某年(月、日)共经过的天数,一般要连头带尾算,也就是经过的年数(天数)=结尾数-开始数+1。 板书:经过的年数(天数)=结尾数-开始数+1 2、试一试:根据上面的方法,算算经过的天数。 2012年的春节从2012年1月22日到2012年1月31日,经过了()天。 2008年3月10日到2008年4月10日,经过了()天。 T:先独立思考,再将你的想法和同桌交流。 反馈:1)31-22+1=10天2)31-10+10+1=32天 3、探究2: 2012年第二学期从2月7日开学到2012年6月25日放假,一共有()天。 T:这道题的天数较多,你准备用什么办法解决? 先试一试,填一填,再集体反馈 反馈:可以用分段推算的方法。 注意考虑2012年是闰年,注意考虑到2月份有29天。 可以将这些天分段如下: 第一段:2月7日到2月29日,共23天。 第二段:3月共31天。 第三段:4月共30天 第四段:5月共31天 第五段:6月1日到6月25日共25天。 合计天数:23+31+30+31+25=140天 追问:如果开学那天是周二,放假那天是周几? S1:140/7=20,没有余数,所以是周二 S2:应该是周一。 T:有两种意见,哪一种对呢? 我们以一个周期来观察,可以发现第八天时,会与第一天的周几重复,也就是说当余数为1

excel表格自动计算设置方法

竭诚为您提供优质文档/双击可除excel表格自动计算设置方法 篇一:excel表间怎样实现自动计算 excel表间怎样实现自动计算?我在银行工作,日常业务是制作如下的表格,其中表1是分户账,表2是总账。 如果我在表1的第2、3、4行分别输入数据后,自动生成余额,那么在表2中怎样才能自动生成所需的数据呢?您可以用excel97中的宏来解决这个问题。这里向您提供一个例子,具体的实现您可以仿照此例子进行设计。下面假设表1为sheet1,表2为sheet2,并仅就借方发生额进行您所要的自动统计。选择“工具”*“宏”*“宏...”,输入一宏名“test”,并输入如下代码: subtest() dimiasinteger dimkasinteger dimjasstring sheets(“sheet1”).select i=0 Fork=1to2

j=“b” j=j&k Range(j).select i=i+Val(activecell.FormulaR1c1) nextk sheets(“sheet2”).select Range(“b1”).select activecell.FormulaR1c1=i endsub 执行该宏后,表2中的借方发生额就是您所要的值了。您可以对此段程序分析并修改为适合您需求的宏。 简述excel中“合并计算”的功能作用(excel表格自动计算设置方法),并叙述步骤 最佳答案所谓合并计算,用财务人员通俗的话讲,就是 把多个格式一致的报表,汇总起来 主要做法是: 新建一个与各报表格式一致的表格用作汇总表 点击要汇总的数据项所在单元格 点菜单:"数据-合并计算" 弹出"合并计算"对话框 在引用位置中,选择某一报表的相同位置 点添加

Excel表格自动计算技巧

Excel表格自动计算技巧 一、显示单元格例有计算式的结果的设置方法 首先:插入-名称-定义在弹出的对话框“当前工作薄的名称”中输入: X或“结果”的自定义名称,再在“引用位置”处粘贴=EVALUATE(SUBSTITUTE(S UBSTITUTE(SUBSTITUTE(SUBSTITUTE(计算!$C$1,"[","("),"]",")"),"×","*"),"÷"," /")) 公式(注意要有“=”号。再对公式中“计算!$C$1”选择上,然后再到需要做公式的单元格中点击即可。如要相对引用,则要删除$字符。 已经OK,你在C1输入表达式比如15+5×3 ,在D1中输入=x 看看(应该是30)。 二、如何在Excel中输入计算式后另一单元显示计算结果 菜单--插入--名称--定义:输入AA(任意取名),在下面输入公式: =EVALUATE($A$1) 然后在B1单元格输入公式:=AA 但本式不能识别如:[ 、×、÷等符号进行计算,使用第一种较好。 三、如何在Excel中编写自定义函数,象在表格中调用SUM()一样? 第一种情况: 单元格A1 = 2;单元格B1 = 2;单元格C1 = 2

单元格D1=(A1+B1)×C1 显示结果为8 ; 那么如何才能在单元格E1中显示(2+2)×2的计算表达式,并且建立关联,当单元格D1变成=(A1+BA)^C1 计算式后,显示结果为16;那么E1也就自动显示为(2+2)^2的计算表达式,也就是说随着单元格D1的计算公式变化,单元格E1显示的计算表达式也随之变化。 第二种情况: 是当计算的单元格任意变化时,怎么办?比如说计算式E1=A1+B1+C1+D1,也有D2=A2+B2+C2,还有F3=A1+B1+C1+D1+E1时。如何将计算式变为计算表达式。即计算式可以在任意一个单元格,计算公式所引用数据的单元格可以任意变化,需要显示计算表达式的单元格也是任意的。 针对第一种问题,分两步做: 1,自定义一个函数 Public Function K(x As Range) K = Right(x.Formula, Len(x.Formula) - 1) End Function 自定义函数操作过程如下: 工具-宏-Visual Basic编辑器-右击-插入模块-再将上面的函数粘贴进去即可。

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 +1 代码如下: #region根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);) ///

///根据年月日计算星期几(Label2.Text=CaculateWeekDay(2004,12,9);) /// ///年 ///月 ///日 /// public static string CaculateWeekDay(int y,int m, int d) { if(m==1) m=13; if(m==2) m=14; int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1; string weekstr=""; switch(week) { case 1: weekstr="星期一"; break; case 2: weekstr="星期二"; break; case 3: weekstr="星期三"; break; case 4: weekstr="星期四"; break; case 5: weekstr="星期五"; break; case 6: weekstr="星期六"; break; case 7: weekstr="星期日"; break; }

excel表格如何自动求减

竭诚为您提供优质文档/双击可除excel表格如何自动求减 篇一:小编告诉你excel表格怎自动加减乘除 小编告诉你excel表格怎自动加减乘除 如图数据编辑以后,在合计单元格内输入 =e3*F3 直接回车 如图数据编辑好以后,在单元格内输入=h3+h4+h5+h6直接回车就ok了! 篇二:excel表格自动计算技巧 excel表格自动计算技巧 一、显示单元格例有计算式的结果的设置方法 首先:插入-名称-定义在弹出的对话框“当前工作薄的名称”中输入:x或“结果”的自定义名称,再在“引用位置”处粘贴= eValuate(substitute(substitute(substitute(substitut e(计算!$c$1,"[","("),"]",")"),"×","*"),"÷","/")) 公式(注意要有“=”号。再对公式中“计算!$c$1”选择上,然后再到需要做公式的单元格中点击即可。如要相对引用,

则要删除$字符。已经ok,你在c1输入表达式比如15+5×3,在d1中输入=x看看(应该是30)。 二、如何在excel中输入计算式后另一单元显示计算结果菜单--插入--名称--定义:输入aa(任意取名),在下面输入公式:=eValuate($a$1) 然后在b1单元格输入公式:=aa 但本式不能识别如:[、×、÷等符号进行计算,使用第一种较好。 三、如何在excel中编写自定义函数,象在表格中调用sum()一样?第一种情况: 单元格a1=2;单元格b1=2;单元格c1=2 单元格d1=(a1+b1)×c1显示结果为8; 那么如何才能在单元格e1中显示(2+2)×2的计算表达式,并且建立关联,当单元格d1变成=(a1+ba)^c1计算式后,显示结果为16;那么e1也就自动显示为(2+2)^2的计算表达式,也就是说随着单元格d1的计算公式变化,单元格e1显示的计算表达式也随之变化。 第二种情况: 是当计算的单元格任意变化时,怎么办?比如说计算式e1=a1+b1+c1+d1,也有d2=a2+b2+c2,还有 F3=a1+b1+c1+d1+e1时。如何将计算式变为计算表达式。即计算式可以在任意一个单元格,计算公式所引用数据的单元

四年级奥数日期和时间地计算含问题详解

日期和时间的计算 一、学习目标 1.学会在日期的计算中发现和识别呈周期性变化的规律,并能列式解答. 2.学会时间计算的一般方法,能说明解答的基本依据. 3.感受简单的分析、推理等方法. 二、内容提要与方法点拨 1.被除数=商×除数+余数,余数要小于除数. 2.找准有一定变化规律的周期,如1年有12个月,1周有7天,1小时是60分,1分是60秒等. 三、例题选讲 例12008年元旦是星期二,那么,2012年元旦是星期几? 解:从2008年元旦到2012年元旦这四年中,2008年是闰年,其余三年是平年.四年的天数加上2012年元旦这一天,共有 366+365×3+1=1462(天) (或365×4+1+1) 一共是1462÷7=208(周)……6(天) 从星期二开始算,第六天是星期日.所以,2012年元旦是星期日. 这道题还可以这样算: 365÷7=52……1,平年有52周余1天,闰年就有52周余2天. 直接算出每一年的天数除以7的余数的和 2+1×3+1=6,从星期二开始算,第六天是星期日. 有一类数学问题是围绕每月天数、日期数和星期几的天数等关系展开的.解答这类问题的焦点往往在它的余数上. 我们知道,在一年的12个月中,每个月最少有28天,最多有31天,一个星期有7天.而 一个月的天数÷7 = 4……(余数),余数可以是0、1、2、3. 下面,我们根据这个除法算式进一步弄清有关的几个数量之间的关系. (1)由上式知,一个月的星期几的个数最少有4个,最多有5个. (2)当余数为0时,即这个月只有28天(平年的2月),那么,这个月所

有的星期几分别有4个.同时,这个月的第一天是星期几,最后一天就是星期几 的前一天.例如,2月1日是星期二,2月28日就是星期一. (3)当余数为1、2、3时,即这个月多于28天.多出了几天,就有几个星 期几是5个的,而且是连续的.例如,7月有31天,当7月1日是星期二时,7 月28日是星期一,7月29日、30日、31日就分别是星期二、三、四,则这个 月的星期二、三、四各有5个. 多出的几天及对应是星期几也可以放到月头考虑,在此不一一分述. 想一想:某年的六月一日是星期五,这个月有5个星期()和星期(). 例2某年的3月份正好有4个星期三和4个星期六,那么这个月的1日是星期几? 有4个星期还多3天。这3天是连续的而 且不能是星期三和星期六,因此,也不可 能是在星期三和星期六之间的星期四和星 期五。这样,只能是星期一、星期二和星 期日。 即这3天按顺序是星期日、一、二(29日、30日、31日)。所以,三月一 日是星期日(如图)。 例3有一个月,星期四的天数比星期三多,星期日的天数比星期六少,这个月的20日是星期几? 解:要求某月某日是星期几,一般可以由这个月的第一日或最后一日是星期 几推出. 由条件“星期四的天数比星期三多,星期日的天数比星期六少”可知这个月 的星期三、星期日只有4个,而星期四、星期六都有5个.从而推知在星期四和 星期六之间的星期五也应有5个.这个月有31天,31÷7=4…3,而且1日是星期 四,31日是星期六. 再由1日是星期四知,8日、15日、22日也是星期四,得知20日就是星期 二.或由31日是星期六,31-20-7=4,推算出20日是星期二(如图).

最新数学运算之星期日期问题

数学运算之星期日期问题 华图教育左宏帅 谈到星期日期问题,就涉及到大、小年和大、小月,大、小年也就是平年和闰年,大家都知道四年一闰、百年不闰、四百年闰,3200年不闰。大、小月的来历呢?就是公元前46年,罗马统帅儒略凯撒制定历法。由于他出生在7月,为了表示他的伟大,决定将7月改为“儒略月”,连同所有的单月都规定为31天,双月为30天。这样一年多出一天,2月是古罗马处死犯人的月份,为了减少处死的人数,将2月减少1天,为29天。 凯撒的继承人奥古斯都出生在8月,他仿照恺撒的做法,把8月增加1天,定为“奥古斯都月”,并把10月、12月也改为31天,将9月、11月改为30天。全年又多出1天,他又从2月减少了1天,于是2月变成了28天,到闰年才29天。这样沿袭下来,就有7月前单月为大月,7月后双月为大月,二月28天。 这里常见的题目就是告诉我们某年某月某日是周几,过几年后的同样的月日是周几?我们都知道平年365天,除以7商是52余数为1,一个季度是几周呢?这样不好记得话,扑克牌我们都很熟悉吧,除了大小王一共也是52张,4个花色正好对应4个季度。 例如:2008年8月21日星期四 2009年8月21日星期几? 2011年8月21日星期几? 2015年8月21日星期几? 2075年8月21日星期几? 2079年8月21日星期几? 2009年8月21日经过一年,没有2月29日,加1,则为星期五。 注意1:计算时不是加闰年,而是加2月29日,因此做题时关键是看有无2月29日。 2011年8月21日经过三年,其中无2月29日,故为星期日。 2015年8月21日在2011年8月21日的基础上又经过四年,必然有一2月29日,故加5,为星期五。 2075年8月21日在2015年8月21日的基础上又经过60年,必然有60÷4=15个2月

Excel钢筋工程量自动计算表格.doc

工程名称:粉煤灰库 序号构件名称编号 直 径 根数计算式根数筋长计算式m 一、环形基础 单根长 度 件 数 重量kg 备注 1 环形基础上下环筋25 11+11 #NAME? 15.25*3.14+ (50-31)*0.025*6 #NAME? 1 #NAME? 2 环形基础上部环筋12 0.5/0.2*2 6 15.25*3.14+ (50-31)*0.012*6 #NAME? 1 #NAME? 3 环形基础下部环筋25 0.5/0.15*2 8 15.25*3.14+ (50-31)*0.025*6 #NAME? 1 #NAME? 4 外层腰筋10 1.2/0.2*2 #NAME? 15.25*3.14+ (50-31)*0.01*6 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME? 0 #NAME? 0 #NAME? 1 #NAME?

excel自动计算表格

竭诚为您提供优质文档/双击可除excel自动计算表格 篇一:excel表间怎样实现自动计算 excel表间怎样实现自动计算?我在银行工作,日常业务是制作如下的表格,其中表1是分户账,表2是总账。 如果我在表1的第2、3、4行分别输入数据后,自动生成余额,那么在表2中怎样才能自动生成所需的数据呢?您可以用excel97中的宏来解决这个问题。这里向您提供一个例子,具体的实现您可以仿照此例子进行设计。下面假设表1为sheet1,表2为sheet2,并 仅就借方发生额进行您所要的自动统计。选择“工具”*“宏”*“宏...”,输入一宏名“test”,并输入如下代码:subtest() dimiasinteger dimkasinteger dimjasstring sheets(“sheet1”).select i=0 Fork=1to2

j=“b” j=j&k Range(j).select i=i+Val(activecell.FormulaR1c1) nextk sheets(“sheet2”).select Range(“b1”).select activecell.FormulaR1c1=i endsub 执行该宏后,表2中的借方发生额就是您所要的值了。您可以对此段程序分析并修改为适合您需求的宏。 简述excel中“合并计算”的功能作用,并叙述步骤 最佳答案所谓合并计算,用财务人员通俗的话讲,就是 把多个格式一致的报表,汇总起来 主要做法是: 新建一个与各报表格式一致的表格用作汇总表 点击要汇总的数据项所在单元格 点菜单:"数据-合并计算" 弹出"合并计算"对话框 在引用位置中,选择某一报表的相同位置 点添加 如此,把所有报表相同位置都添加进去

根据公历日期计算星期的公式

根据公历日期计算星期的公式 蔡勒(Zeller)公式:是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。 公式如下: W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1 公式中的符号含义如下: w:星期;(w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六) c:世纪(前两位数) y:年(后两位数) m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算) d:日 [ ]代表取整,即只要整数部分。 下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下: 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周年国庆)是星期五。

再比如计算2006年4月4日,过程如下: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 =6+[6/4]+[20/4]-2*20+[26*(4+1)/10]+4-1 =-12 (除以7余2,注意对负数的取模运算!) 不过,以上的公式都只适合于1582年(我国明朝万历十年)10月15日之后的情形。 罗马教皇格里高利十三世在1582年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对儒略历作了修改。将1582年10月5日到14日之间的10天宣布撤销,继10月4日之后为10月15日。 后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。 若要计算1582年10月4日及之前的日期是星期几,则公式为: y+[y/4]+[c/4]-2c+[26(m+1)/10]+d+3

Excel函数让几个单元格自动计算

Excel函数让几个单元格自动计算 加: 用SUM函数 减: 用SUM或SUMPRODUCT函数,如SUMPRODUCT(A1:A2,{1;-1}) 乘: 直接用乘号,如A1*A2 用PRODUCT函数,如PRODUCT(A1:A10) 除: 直接用除号,如A1/A2 =COUNT(A:A) 计算A列包含数值的单元格个数 =COUNTA(A:A)计算A列不包含空值的单元格个数 =COUNTBLANK(A:A)计算A列包含空值的单元格个数 =COUNTIF(A:A,">10")计算A列大于10的单元格个数 =COUNTIF(A:A,"TT")计算A列等于"TT"的单元格个数 公式是单个或多个函数的结合运用。 AND “与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE)”

时返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。条件判断 AVERAGE 求出所有参数的算术平均值。数据计算 COLUMN 显示所引用单元格的列标号值。显示位置CONCATENATE 将多个字符文本或单元格中的数据连接在一起,显示在一个单元格中。字符合并 COUNTIF 统计某个单元格区域中符合指定条件的单元格数目。条件统计 DATE 给出指定数值的日期。显示日期 DATEDIF 计算返回两个日期参数的差值。计算天数 DAY 计算参数中指定日期或引用单元格中的日期天数。计算天数DCOUNT 返回数据库或列表的列中满足指定条件并且包含数字的单元格数目。条件统计 FREQUENCY 以一列垂直数组返回某个区域中数据的频率分布。概率计算 IF 根据对指定条件的逻辑判断的真假结果,返回相对应条件触发的计算结果。条件计算 INDEX 返回列表或数组中的元素值,此元素由行序号和列序号的索引值进行确定。数据定位 INT 将数值向下取整为最接近的整数。数据计算 ISERROR 用于测试函数式返回的数值是否有错。如果有错,该函数返回TRUE,反之返回FALSE。逻辑判断

《巧算“星期几”》例题分析加练习题(打印版)

《巧算“星期几”》 平年365天,其中2月28天, (1-12月分别为31天,28天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天) 闰年366天,其中2月29天. (1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天) 教学目标: 1、根据时间、日期的知识,解决一些时间问题。 2、掌握计算共经过的天数:从头到尾总天数除以7得出的余数是几,就从第一周期第一项开始数几,即可推知是星期几。算头不算尾、算尾不算头的总天数除以7得出的余数是几,就从第一周期第一项的下一项开始数几,推知是星期几。 教学过程: 一、实践畅销 1:平南小学从2011年12月1日到2011年12月20日举行第三届英语节活动,活动一共举行了多少天? T::请独立思考,比一比谁能快速得出结果? 小明:20天小红:19天 老师:谁的想法对?用什么方法验证? 分析:可以将日期列一列。分析:可以列算式20-1=19 19+1=20 老师:为什么要加1?(头尾都要算,所以要加1) 小结:计算从某年(月日)起到某年(月、日)共经过的天数,一般要连头带尾算,也就是经过的年数(天数)=结尾数-开始数+1。 反思:经过的年数(天数)=结尾数-开始数+1 2: 2012年第二学期从2月7日开学到2012年6月25日放假,一共有()天。 老师:这道题的天数较多,你准备用什么办法解决?提示:可以用分段推算的方法。注意考虑2012年是闰年,注意考虑到2月份有29天。可以将这些天分段如下:第一段:2月7日到2月29日,共23天。 第二段:3月共31天。 第三段:4月共30天 第四段:5月共31天 第五段:6月1日到6月25日共25天。 合计天数:23+31+30+31+25=140天 追问:如果开学那天是周二,放假那天是周几? 小明:140/7=20,没有余数,所以是周二 小红:应该是周一。 老师:有两种意见,哪一种对呢? 我们以一个周期来观察,可以发现第八天时,会与第一天的周几重复,也就是说当余数为1时,从第一个开始。当没有余数时,就是一个周期的最后一天。

怎样快速根据日期推算星期

怎样快速根据日期推算星期 方法一: 1.日期代码指的是日期数,如3月18号,日期代码为18。4月7号,日期 代码为7。 2.月份代码(需要小小记忆) 五月是 0 八月是 1 二月三月十一月是 2 六月是 3 九月十二月是4 四月七月是5 一月十月是 6 如果遇到闰年则二月代码变为1,一月代码变为5,其它不变。即,非闰年的月份代码为622503 514624,闰年的月份代码为512503 514624。 3.年份代码 举个例子 2010年的代码,我们用尾数10除以4(忽略余数)再加上10得到数字12,再用12除以7,得到的余数5就是2010年的代码。 也就是说,心算出2000到2099任意年份的代码,只需将其后两位数X 除以4(忽略余数),然后与X相加,并除以7就可以了,得到的余数就是其年份代码。10年的年份代码是5,11年年份代码为6。 4.秒算任意日期的星期数 如,我们算一下2010年4月25日 日期代码25 月份代码5 年份代码5 日期代码+月份代码+年份代码=25+5+5=35 35是7的倍数,所以2010年4月25日是星期日 再比如算一下2010年10月1日 日期代码1 月份代码6 年份代码5 日期代码+月份代码+年份代码=1+6+5=12 12除以7余5,所以2010年10月1日是星期五 如果得到的代码和是小于7的数,那么此数直接是星期数 如果得到的代码和是大于7的数,那么将该数除以7得到的余数为星期 数。

原理:蔡勒公式 W=[C/4]-2C+y+[y/4]+[26(m+1)/10]+d-1 (其中[ ]为取整符号)?其中,W是所求日期的星期数.如果求得的数大于7,可以减去7的倍数,直 到余数小于7为止.c是公元年份的前两位数字,y是已知公元年份的后两位数字;m是月数,d是日数.方括[ ]表示只截取该数的整数部分。 ?还有一个特别要注意的地方:所求的月份如果是1月或2月,则应视为前一年的13月或14月.所以公式中m 的取值范围不是1-12,而是3-14. ?大家读懂后,我给出一些历史时期,以便读者进行验算. (1).美国总统林肯遇刺,1865年4月14日,星期5; (2).美国独立纪念日,1776年7月4日,星期日; (3).日本偷袭珍珠港,1941年1941年12月7日; ?最后还有一点,工元1582年罗马教皇曾经下令修改历法,把这一年的10月4日(星期4)的下一天改为10月15日.所以在1582年以前的日子,不 能加以套用. 冬日夜冷继续闲读,近日看了本《古代文化常识百话》,其中有篇是关于公历年份是如何换算成农年的干支纪年的,蛮有意思的,特记之。 首先,公元元年,即公元1年,相对应的我国农历是辛酉年,这是个换算的大前提。 然后,根据上面的前提,把我国的天干地支编成对应的两组数字: 甲乙丙丁戊己庚辛壬癸 4567890123 子丑寅卯辰巳午未申酉戌亥 45678910 11 0123 再次就是具体推算方法(以2009年为例): 1、公元纪年的末位数所对应的天干,就是那一年的天干,如2009年, 末位数是9,它所对应的天干是“己”。己就是2009年的天干。

设计一个由日期判断对应是星期几的程序_20110612_2043

河北工业大学计算机软件技术基础(VC) 课程设计任务书 一、题目:设计一个由日期判断对应是星期几的程序(C) 二、目的与要求 1.目的: 通过由日期判断是星期几程序的设计,培养学生综合利用C++语言进行程序设计的能力,要求学生利用系统提供的标准函数及典型算法进行设计,加强函数的运用及学生对软件工程思想的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力。 2.基本要求: (1)要求利用C++语言编程,在Visual C++环境下调试完成; (2)要求划分功能模块,各个功能分别使用函数来完成; (3)源代码程序要有必要的注释。 三、设计方法和基本原理 1.课题功能描述 给出年、月、日,得出对应的星期几。 2.问题的解决方案: 根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。提示: (1)找出日期和对应星期几之中的联系,利用程序实现。方法应该有很多,选用最简练,最容易理解的算法。对应日期的计算思路提示:事先找一个基准点,比如1900年1月1日对应星 期一,总结出日期和星期的对应关系,然后计算从基准日期到要求日期之间的天数,根据事 先总结的规律得到所对应的星期。 (2)为了将日期和星期一一对应,用总天数除7取余,控制日期和星期几的对应关系。 (3)注意每月的天数不同,并且二月份又有两种情况:是闰年和不是闰年的情况。 注意:本题目要求利用上课所学知识,不能简单应用已有已知日期求得星期几的数学公式求结果。 四、主要技术问题的描述 根据三的分析,主要问题在于: 找出日期和对应星期几之间的联系。首先找到一个基准点,比如1900年1月1日对应星期一,或者1990年1月1日对应星期一,总结出一个规律。当然,不一定必须指定某年的1月1日恰是星期一那一天做为基准点。 五、创新要求 在基本要求达到后,进行创新设计: (1)使用多文件,即主函数和各个函数分别存放在不同的.cpp文件中,在头文件中进行函数原型声明;

C语言根据日期求星期(分段计算方式)

C语言根据日期求星期 今天是2007年10月17日,星期六. 现在告诉你一个日期,你能回答今天是星期几吗? 输入描述: 输入数据有多组,每组占一行,输入三个整数year(0 2 char date[7][7] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; 3 //判断年份是否为闰年 4 int isLeap(int year) 5 { 6 if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) 7 return 1; 8 return 0; 9 } 10 11 int main() 12 { 13 int year,month,day; 14 //平年各个月的天数 15 int year1[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; 16 //闰年各个月的天数 17 int year2[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; 18 //days为距离公元第一天的天数 19 int days = 0, k = 0, j = 0; 20 char *getDate; 21 while(scanf("%d %d %d", &year,&month,&day) != EOF)

C语言根据日期判断星期几使用基姆拉尔森计算公式

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来代入公式计算。 以公元元年为参考,公元元年1月1日为星期一;;程序如下: #include "stdio.h" void CaculateWeekDay(int y,int m, int d) { if(m==1||m==2) { m+=12;

y--; } int iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; switch(iWeek) { case 0: printf("星期一\n"); break; case 1: printf("星期二\n"); break; case 2: printf("星期三\n"); break; case 3: printf("星期四\n"); break; case 4: printf("星期五\n"); break; case 5: printf("星期六\n"); break; case 6: printf("星期日\n"); break; } } void main() { int year=0,month=0,day=0; printf("请输入日期:\n格式为: 1900,1,1\n"); char temp = '1'; while (temp != '0')

教你根据日期算出星期几

教你根据日期算出星期几 很多人都听说过,有人可以通过某一年的某一个具体日期,马上可以算出星期几,其实这个并不难。。 我们计算星期几的方法一共有几个流程: 1.找月份号码 2.日期计算找余 3.余数为星期数 OK,这个总共3个流程(其实2,3年级的小学生就可以算出来。) 1. 找月份号码。我们每一年的日历都不相同,所以导致了我们每一年的月份代码都不同,就看看我们2010年的日历吧! 1月份,1号所在的位置,用(星期数- 1 = 月份代码),得到1月的月份代码4。就是看中第一行,用星期数减去日期数就等于这个月份的代码了。星期日就按7来算。由此得出,2月份的号码是0,3月份的也是0,一个一个月算下去,可以得出这一年的12个月份代码,分别是 月份:1 2 3 4 5 6 7 8 9 10 11 12 代码:4 0 0 3 5 1 3 6 2 4 0 2 所以,这一年我们只要记住400351362402就OK了。 2 .找日期。这里我们需要记住一个公式,就是,月份数不要,除法的商不要 日期数大于7的时候:(日期数+月份代码)/ 7,找余数,余数就是星期几了 日期数小于7的时候:7 - 日期数=星期数 日期数等于7的时候:直接是星期天 现在我们来举一个例子吧!我不看上面的日历,就6月12号吧! 6月份的6,不要。我们直接找12号,根据我们的记忆,6月份的月份号码应该是 1 (400351362402,还没记住的赶快记住),所以我们就根据公式,日期数大于7就用日期数12加上月份号码1等于13 ,就除以7,得1余6,余数是6,算式是(12+1)/ 7,得1余6 ,

所以6月12号绝对是星期六。 不相信的上去看看。没错吧!不知道大家看到这里迷糊没有,我的表述不太清楚。 总结一下吧! 2010年的月份代码400351362402 算法前提: 日期数大于7的时候:(日期数+月份代码)/ 7,找余数,余数就是星期几了 日期数小于7的时候:7 - 日期数=星期数 日期数等于7的时候:直接是星期天 算法公式: (日期数+月份代码)/ 7,找余数,余数= 星期数 OK,写到这里吧!下次教大家怎么记住圆周率,1年没记了,现在都记不住,以前2天记住500位呢!不是吹D!

计算星期几的方法

计算任何一个日期是星期几的方法 蔡勒公式 W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1 C是世纪数减1,y是年份后两位,M是月份(从3月开始,1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值),d是日数。求出W的值,再除以7,余几就是星期几,余数为0,则是星期天。 注意:[...]表示只取整数部分 注意:公式中如计算得出负数,不能按习惯的余数的概念求余数,只能按数论中的余数的定义求余。为了方便计算,我们可以给它加上一个7的整数倍,使它变为一个正数,比如加上7、14、21、28等,得到一个整数后,再除以7,余几,说明这一天是星期几。 例1:2004年的9月1日是星期几? C=20 y=04 M=9 d=1 W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1 =[20/4]-2×20+04+[04/4]+[13×(9+1)/5]+1-1 =5-40+4+1+[13×2]+1-1 =5-40+4+1+26+1-1

=-4 W为负数不行,加7的倍数14,得10。10除以7,余数为3,2004年的9月1日是星期三。 例2:2010年的7月15日是星期几? C=20 y=10 M=7 d=15 W = [C/4] - 2C + y + [y/4] + [13×(M+1) / 5] + d - 1 =[20/4]-2×20+10+[10/4]+[13×(7+1)/5]+15-1 =5-40+10+2+[13×8/5]+14 =-23+20+14 =11 11除以7余数为4,2010年的7月15日是星期四。 链接:1世纪为100年,2000年以后为21世纪,以此类推1个年代为10年,90-99为90年代,以此类推! 如:1900年是19世纪、1901年是20世纪、2000年是20世纪、2001年是21世纪。

相关文档
最新文档