什么是IE插件 请讲详细点好吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是IE插件 请讲详细点好吗相关的知识,希望对你有一定的参考价值。
IE插件简介所谓IE插件是一个嵌入到IE工具栏中的“NetGoCN工具栏”、一个IE窗口菜单扩展以及一组IE按键和鼠标动作功能扩展的总称。使用IE插件前必须保证:
系统安装IE5.0以上版本,推荐使用5.5及以上版本的IE。单个杀灭(或获取)Flash时,在有些系统中(如Windows 2000)需要IE6.0才能正确动作;
您对所使用的电脑具有可以安装插件的操作权限,且通过NetGoCN主程序的选项或命令行,在Windows中正确注册了此插件;
在IE“查看-工具栏”菜单中(或MyIE2的相应选项中)选择了“NetGoCN工具栏”。
注册IE插件可以通过NetGoCN主程序的“选项”菜单完成(选中“使用IE插件”菜单项为使用IE插件,反之则为不使用IE插件)。由于此IE插件是一个标准的IE功能扩展程序,所以您也可以通过命令行注册此IE插件(如果您能熟练操作的话)。
由于IE插件是IE的功能扩展,所以无论您选择使用或不使用IE插件,都只有打开IE(或其它宿主程序)才能看到其设置结果,并且当其设置改变后,下次启动IE时生效。
注:IE插件可以在MyIE2中正常使用,NetGoCN已针对MyIE2进行了专门的配置,正常情况时应无需用户设置就可看到它。在MyIE2中,“清除弹出窗”功能无效。
IE插件所具有以下功能。
一,获取功能
批量获取当前网页中的插件文件,目前支持Flash、RealPlayer、MediaPlayer和JAVA对象文件;
批量获取当前网页中的图形文件;
批量获取当前网页中的链接网址;
批量获取当前网页中的框架页网址,包含网页中嵌入的网页地址;
获取网页中的脚本程序,以文本形式发到《NetGoCN写字板》;
获取网页、活动框架页、选中的网页文本;
即指即得,单个获取网页中的图片;
即指即得,单个获取网页中的Flash(Flash对象不接受拖动和拷贝)等网页中的嵌入文件;
得到网页的快照图片(BMP格式);
单个获取网页元素时,可以在收藏的同时,保存您在网页中选取的文字作为说明文件以及自动添加和来源网址、收藏日期等附加信息到此收藏文件。
二,清除功能
自动关闭弹出式窗口;
批量隐藏、显示当前网页中的嵌入网页;
批量隐藏、显示当前网页中的图片;
批量隐藏、显示当前网页中的Flash;
单个杀除当前网页中的图片;
单个杀除当前网页中的Flash;
清除文本中的隐藏文字。
三,编辑功能
通过本IE插件,可以直接编辑(在线编辑)您所浏览的网页(V2.0或以后的版本)。
利用其编辑功能,可以完成网页片段的修改收集和添加收集。
可以将网页简单地保存为单一的CHM电子文档。
四,拖放框功能
IE插件工具条具有绝大部分的NetGoCN拖放框功能;
部分按钮具有独特的施放接受功能;
将IE插件工具条作为拖放框使用时,可以在收藏图片、Flash等的同时,自动保存您在网页中选取的文字说明和来源网址、收藏日期等附加信息。
五,常用工具
允许用户配置、任意添加、删除想要的工具程序到插件的“工具”按钮,并可在Windows资源管理器中和浏览器中使用;
添加工具可通过“工具”按钮的下拉菜单,选择“配置工具”菜单项完成,或直拖放一个应用程序到IE插件工具条上则可;
工具按钮下拉菜单的三种操作方式:
操作 执行功能
用鼠标左键直接点击您想要操作的菜单项 工具按钮功能切换,并运行此工具
用鼠标左键点击您想要操作的菜单项,同时按下Ctrl键 执行功能:运行此工具(不切换工具按钮功能)
用鼠标右键直接点击您想要操作的菜单项 工具按钮功能切换(不运行此工具)
工具按钮接受本地文件的拖放。若拖动一个本地文件到工具按钮,将调用用户配置的应用程序工具打开施入的文件。例如,当您指定Photoshop到工具按钮上后,您可以在Windows资源管理器中,拖动多个图形文件到“工具”按钮,放开鼠标后将运行Photoshop,同时打开拖入的图形文件。
支持工具程序的命令行参数,详细描述请查阅帮助文档。
插件是一种遵循一定规范的应用程序接口编写出来的程序。很多软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件。
��IE浏览器常见的插件例如:Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等等;再比如Winamp的DFX,也是插件。还有很多插件都是程序员新开发的。
��组件和插件的区别是,插件是属于程序接口的程序,组件在ASP中就是控件、对象,ASP/IIS的标准安装提供了11个可安装组件。ASP的FSO组件,编程的朋友都如雷贯耳吧,它就是最常用的Scripting.FileSystemObject对象
1.什么是寮? 插件是指会随着IE浏览器的启动自动执行的程序.
2.恶意插件有什么特征? 有些插件程序能够帮助用户更方便浏览因特网或调用上网辅助功能,也有部分程序被人称为广告软件(Adware)或间谍软件(Spyware).此类恶意插件程序监视用户的上网行为,并把所记录的数据报告给插件程序的创建者,以达到投放广告,盗取游戏或银行帐号密码等非法目的.
因为插件程序由不同的发行商发行,其技术水平也良莠不齐,插件程序很可能与其它运行中的程序发生冲突,从而导致诸如各种页面错误,运行时间错误等等现象,阻塞了正常浏览.
3.插件会从什么位置加载到IE浏览器中? 根据插件在浏览器中的加载位置,可以分为工具条(Toolbar)、浏览器辅助(BHO)、搜索挂接(URL SEARCHHOOK)、下载ActiveX(ACTIVEX).
4.不同类型插件名词解释
①下载ActiveX(ACTIVEX):
ActiveX插件也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中.在因特网上,ActiveX插件软件的特点是:一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装.
ActiveX插件安装的前提是必须先下载,然后经过认证,最终用户确认同意方能安装,因此嵌有ActiveX脚本程序的页面可能会变得非常慢,甚至导致浏览器瞬间失去响应.
插件管理专家2005能够屏蔽用户不需要安装的插件程序,加快页面加载速度,确保用户正常浏览.
②浏览器辅助(BHO)
BHO全称Browser Helper Object, 是一种随因特网浏览器(如IE)每次启动而自动执行的小程序.通常情况下,一个BHO文件是由其它软件安装到用户的系统中的.例如一些带有下载功能的广告软件,它可能会安装一个BHO文件从而追踪用户在上网冲浪遇到的众多网页广告.
通常的BHO会帮助用户更方便地浏览因特网或调用上网辅助功能,也有一部分BHO被人称为广告软件(Adware)或间谍软件(Spyware),它们监视用户的上网行为并把记录的相关数据报告给BHO的创建者.BHO也可能会与其它运行中的程序发生冲突,从而导致诸如各种页面错误,运行时间错误等等现象,通常阻止了正常浏览的进行.
插件管理专家2005提供的BHO清理能够帮助用户查看并屏蔽被IE浏览器加载的BHO文件.
③搜索挂接(URL SEARCHHOOK)
用户在地址栏中输入非标准的网址,如英文字符或者中文的时候,当地址栏无法对输入字符串解释成功时,浏览器会自动打开一个以用户输入的字符串为搜索词的结果页面,帮助用户找到需要的内容.URLSearchhook对象就是完成搜索功能的插件.它通常是由第三方公司或者个人开发,通过插件的方式安装到浏览器上, 目的是为了帮助用户更好的使用互联网.例如用户在地址栏中输入"手机",就可以直接看到手机搜索结果.也有一些企业或者个人为了达到提高网站访问或其它商业目的,在用户不知情的情况下修改IE浏览器的URLSearchhook.
使用插件管理专家2005可以对URLSearchhook插件程序进行管理,屏蔽或者删除不需要的恶意插件.
④工具条(Toolbar)
工具条,通常指加载在浏览器的辅助工具.它位于浏览器标准工具条的下方,在IE工具栏空白处点击右键,可以查看所有已经安装的工具条,通过勾选显示或者隐藏已安装的工具条
另外一个可能被屏蔽了 或者没有注册表关联 插件都可以删除
参考资料:http://zhidao.baidu.com/question/10472264.html
回答者:flyskyline - 举人 四级 8-27 09:15
IE插件简介
所谓IE插件是一个嵌入到IE工具栏中的“NetGoCN工具栏”、一个IE窗口菜单扩展以及一组IE按键和鼠标动作功能扩展的总称。使用IE插件前必须保证:
系统安装IE5.0以上版本,推荐使用5.5及以上版本的IE。单个杀灭(或获取)Flash时,在有些系统中(如Windows 2000)需要IE6.0才能正确动作;
您对所使用的电脑具有可以安装插件的操作权限,且通过NetGoCN主程序的选项或命令行,在Windows中正确注册了此插件;
在IE“查看-工具栏”菜单中(或MyIE2的相应选项中)选择了“NetGoCN工具栏”。
注册IE插件可以通过NetGoCN主程序的“选项”菜单完成(选中“使用IE插件”菜单项为使用IE插件,反之则为不使用IE插件)。由于此IE插件是一个标准的IE功能扩展程序,所以您也可以通过命令行注册此IE插件(如果您能熟练操作的话)。
由于IE插件是IE的功能扩展,所以无论您选择使用或不使用IE插件,都只有打开IE(或其它宿主程序)才能看到其设置结果,并且当其设置改变后,下次启动IE时生效。
注:IE插件可以在MyIE2中正常使用,NetGoCN已针对MyIE2进行了专门的配置,正常情况时应无需用户设置就可看到它。在MyIE2中,“清除弹出窗”功能无效。
IE插件所具有以下功能。
一,获取功能
批量获取当前网页中的插件文件,目前支持Flash、RealPlayer、MediaPlayer和JAVA对象文件;
批量获取当前网页中的图形文件;
批量获取当前网页中的链接网址;
批量获取当前网页中的框架页网址,包含网页中嵌入的网页地址;
获取网页中的脚本程序,以文本形式发到《NetGoCN写字板》;
获取网页、活动框架页、选中的网页文本;
即指即得,单个获取网页中的图片;
即指即得,单个获取网页中的Flash(Flash对象不接受拖动和拷贝)等网页中的嵌入文件;
得到网页的快照图片(BMP格式);
单个获取网页元素时,可以在收藏的同时,保存您在网页中选取的文字作为说明文件以及自动添加和来源网址、收藏日期等附加信息到此收藏文件。
二,清除功能
自动关闭弹出式窗口;
批量隐藏、显示当前网页中的嵌入网页;
批量隐藏、显示当前网页中的图片;
批量隐藏、显示当前网页中的Flash;
单个杀除当前网页中的图片;
单个杀除当前网页中的Flash;
清除文本中的隐藏文字。
三,编辑功能
通过本IE插件,可以直接编辑(在线编辑)您所浏览的网页(V2.0或以后的版本)。
利用其编辑功能,可以完成网页片段的修改收集和添加收集。
可以将网页简单地保存为单一的CHM电子文档。
四,拖放框功能
IE插件工具条具有绝大部分的NetGoCN拖放框功能;
部分按钮具有独特的施放接受功能;
将IE插件工具条作为拖放框使用时,可以在收藏图片、Flash等的同时,自动保存您在网页中选取的文字说明和来源网址、收藏日期等附加信息。
五,常用工具
允许用户配置、任意添加、删除想要的工具程序到插件的“工具”按钮,并可在Windows资源管理器中和浏览器中使用;
添加工具可通过“工具”按钮的下拉菜单,选择“配置工具”菜单项完成,或直拖放一个应用程序到IE插件工具条上则可;
工具按钮下拉菜单的三种操作方式:
操作 执行功能
用鼠标左键直接点击您想要操作的菜单项 工具按钮功能切换,并运行此工具
用鼠标左键点击您想要操作的菜单项,同时按下Ctrl键 执行功能:运行此工具(不切换工具按钮功能)
用鼠标右键直接点击您想要操作的菜单项 工具按钮功能切换(不运行此工具)
工具按钮接受本地文件的拖放。若拖动一个本地文件到工具按钮,将调用用户配置的应用程序工具打开施入的文件。例如,当您指定Photoshop到工具按钮上后,您可以在Windows资源管理器中,拖动多个图形文件到“工具”按钮,放开鼠标后将运行Photoshop,同时打开拖入的图形文件。
支持工具程序的命令行参数,详细描述请查阅帮助文档 参考技术A 即英文的Plug-in,是一种程序。浏览器一般能够直接调用插件程序。插件安装后就成为浏览器的一部分,可以处理特定的文件。插件的使用,增强了浏览器处理不同Web文件的能力。
java万年历
请各位高手指点下万年历实现的思路好吗?不需要打印代码出来,只需要思路,本人想自己写,谢谢,没积分了,能收到回音码?
谢谢。。。。很详细,但就是太长了,我要的只是用Java写万年历的思路,要怎么样去计算,不是什么公式啊,我看了都头大了,简洁点好吗
万年历的 但是不实现农历
如何计算某一天是星期几?
slowtiger 发表于 2005-10-11 21:43:00
如何计算某一天是星期几?
—— 蔡勒(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日之后的情形(当时的罗马教皇将恺撒大帝制订的儒略历修改成格里历,即今天使用的公历)。
过程的推导:(对推理不感兴趣的可略过不看)
星期制度是一种有古老传统的制度。据说因为《圣经·创世纪》中规定上帝用了六
天时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生
活,而星期日是休息日。从实际的角度来讲,以七天为一个周期,长短也比较合适。所
以尽管中国的传统工作周期是十天(比如王勃《滕王阁序》中说的“十旬休暇”,即是
指官员的工作每十日为一个周期,第十日休假),但后来也采取了西方的星期制度。
在日常生活中,我们常常遇到要知道某一天是星期几的问题。有时候,我们还想知
道历史上某一天是星期几。通常,解决这个方法的有效办法是看日历,但是我们总不会
随时随身带着日历,更不可能随时随身带着几千年的万年历。假如是想在计算机编程中
计算某一天是星期几,预先把一本万年历存进去就更不现实了。这时候是不是有办法通
过什么公式,从年月日推出这一天是星期几呢?
答案是肯定的。其实我们也常常在这样做。我们先举一个简单的例子。比如,知道
了2004年5月1日是星期六,那么2004年5月31日“世界无烟日”是星期几就不难推算出
来。我们可以掰着指头从1日数到31日,同时数星期,最后可以数出5月31日是星期一。
其实运用数学计算,可以不用掰指头。我们知道星期是七天一轮回的,所以5月1日是星
期六,七天之后的5月8日也是星期六。在日期上,8-1=7,正是7的倍数。同样,5月15
日、5月22日和5月29日也是星期六,它们的日期和5月1日的差值分别是14、21和28,也
都是7的倍数。那么5月31日呢?31-1=30,虽然不是7的倍数,但是31除以7,余数为2,
这就是说,5月31日的星期,是在5月1日的星期之后两天。星期六之后两天正是星期一。
这个简单的计算告诉我们计算星期的一个基本思路:首先,先要知道在想算的日子
之前的一个确定的日子是星期几,拿这一天做为推算的标准,也就是相当于一个计算的
“原点”。其次,知道想算的日子和这个确定的日子之间相差多少天,用7除这个日期
的差值,余数就表示想算的日子的星期在确定的日子的星期之后多少天。如果余数是
0,就表示这两天的星期相同。显然,如果把这个作为“原点”的日子选为星期日,那
么余数正好就等于星期几,这样计算就更方便了。
但是直接计算两天之间的天数,还是不免繁琐。比如1982年7月29日和2004年5月
1日之间相隔7947天,就不是一下子能算出来的。它包括三段时间:一,1982年7月29
日以后这一年的剩余天数;二,1983-2003这二十一个整年的全部天数;三,从2004年
元旦到5月1日经过的天数。第二段比较好算,它等于21*365+5=7670天,之所以要加
5,是因为这段时间内有5个闰年。第一段和第三段就比较麻烦了,比如第三段,需要把
5月之前的四个月的天数累加起来,再加上日期值,即31+29+31+30+1=122天。同理,第
一段需要把7月之后的五个月的天数累加起来,再加上7月剩下的天数,一共是155天。
所以总共的相隔天数是122+7670+155=7947天。
仔细想想,如果把“原点”日子的日期选为12月31日,那么第一段时间也就是一个
整年,这样一来,第一段时间和第二段时间就可以合并计算,整年的总数正好相当于两
个日子的年份差值减一。如果进一步把“原点”日子选为公元前1年12月31日(或者天文
学家所使用的公元0年12月31日),这个整年的总数就正好是想算的日子的年份减一。这
样简化之后,就只须计算两段时间:一,这么多整年的总天数;二,想算的日子是这一
年的第几天。巧的是,按照公历的年月设置,这样反推回去,公元前1年12月31日正好是
星期日,也就是说,这样算出来的总天数除以7的余数正好是星期几。那么现在的问题就
只有一个:这么多整年里面有多少闰年。这就需要了解公历的置闰规则了。
我们知道,公历的平年是365天,闰年是366天。置闰的方法是能被4整除的年份在
2月加一天,但能被100整除的不闰,能被400整除的又闰。因此,像1600、2000、2400
年都是闰年,而1700、1800、1900、2100年都是平年。公元前1年,按公历也是闰年。
因此,对于从公元前1年(或公元0年)12月31日到某一日子的年份Y之间的所有整年
中的闰年数,就等于
[(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400],
[...]表示只取整数部分。第一项表示需要加上被4整除的年份数,第二项表示需要去掉
被100整除的年份数,第三项表示需要再加上被400整除的年份数。之所以Y要减一,这
样,我们就得到了第一个计算某一天是星期几的公式:
W = (Y-1)*365 + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (1)
其中D是这个日子在这一年中的累积天数。算出来的W就是公元前1年(或公元0年)12月
31日到这一天之间的间隔日数。把W用7除,余数是几,这一天就是星期几。比如我们来
算2004年5月1日:
W = (2004-1)*365 + [(2004-1)/4] - [(2004-1)/100] + [(2004-1)/400] +
(31+29+31+30+1)
= 731702,
731702 / 7 = 104528……6,余数为六,说明这一天是星期六。这和事实是符合的。
上面的公式(1)虽然很准确,但是计算出来的数字太大了,使用起来很不方便。仔
细想想,其实这个间隔天数W的用数仅仅是为了得到它除以7之后的余数。这启发我们是
不是可以简化这个W值,只要找一个和它余数相同的较小的数来代替,用数论上的术语
来说,就是找一个和它同余的较小的正整数,照样可以计算出准确的星期数。
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
(Y-1)*365 = (Y-1) * (364+1)
= (Y-1) * (7*52+1)
= 52 * (Y-1) * 7 + (Y-1),
这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其实就
等于Y-1除以7的余数。这个关系可以表示为:
(Y-1)*365 ≡ Y-1 (mod 7).
其中,≡是数论中表示同余的符号,mod 7的意思是指在用7作模数(也就是除数)的情
况下≡号两边的数是同余的。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到
了那个著名的、也是最常见到的计算星期几的公式:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (2)
这个公式虽然好用多了,但还不是最好用的公式,因为累积天数D的计算也比较麻
烦。是不是可以用月份数和日期直接计算呢?答案也是肯定的。我们不妨来观察一下各
个月的日数,列表如下:
月 份:1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
--------------------------------------------------------------------------
天 数: 31 28(29) 31 30 31 30 31 31 30 31 30 31
如果把这个天数都减去28(=4*7),不影响W除以7的余数值。这样我们就得到另一张
表:
月 份:1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
------------------------------------------------------------------------
剩余天数: 3 0(1) 3 2 3 2 3 3 2 3 2 3
平年累积: 3 3 6 8 11 13 16 19 21 24 26 29
闰年累积: 3 4 7 9 12 14 17 20 22 25 27 30
仔细观察的话,我们会发现除去1月和2月,3月到7月这五个月的剩余天数值是3,2,3,2,
3;8月到12月这五个月的天数值也是3,2,3,2,3,正好是一个重复。相应的累积天数中,
后一月的累积天数和前一月的累积天数之差减去28就是这个重复。正是因为这种规律的
存在,平年和闰年的累积天数可以用数学公式很方便地表达:
╭ d; (当M=1)
D = 31 + d; (当M=2) (3)
╰ [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d + i. (当M≥3)
其中[...]仍表示只取整数部分;M和d分别是想算的日子的月份和日数;平年i=0,闰年
i=1。对于M≥3的表达式需要说明一下:[13*(M+1)/5]-7算出来的就是上面第二个表中的
平年累积值,再加上(M-1)*28就是想算的日子的月份之前的所有月份的总天数。这是一
个很巧妙的办法,利用取整运算来实现3,2,3,2,3的循环。比如,对2004年5月1日,有:
D = [ 13 * (5+1) / 5 ] - 7 + (5-1) * 28 + 1 + 1
= 122,
这正是5月1日在2004年的累积天数。
假如,我们再变通一下,把1月和2月当成是上一年的“13月”和“14月”,不仅仍
然符合这个公式,而且因为这样一来,闰日成了上一“年”(一共有14个月)的最后一
天,成了d的一部分,于是平闰年的影响也去掉了,公式就简化成:
D = [ 13 * (M+1) / 5 ] - 7 + (M-1) * 28 + d. (3≤M≤14) (4)
上面计算星期几的公式,也就可以进一步简化成:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] - 7
+ (M-1) * 28 + d.
因为其中的-7和(M-1)*28两项都可以被7整除,所以去掉这两项,W除以7的余数不变,
公式变成:
W = (Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + [ 13 * (M+1) / 5 ] + d.
(5)
当然,要注意1月和2月已经被当成了上一年的13月和14月,因此在计算1月和2月的日子
的星期时,除了M要按13或14算,年份Y也要减一。比如,2004年1月1日是星期四,用这
个公式来算,有:
W = (2003-1) + [(2003-1)/4] - [(2003-1)/100] + [(2003-1)/400] + [13*(13+1)/5]
+ 1
= 2002 + 500 - 20 + 5 + 36 + 1
= 2524;
2524 / 7 = 360……4.这和实际是一致的。
公式(5)已经是从年、月、日来算星期几的公式了,但它还不是最简练的,对于年
份的处理还有改进的方法。我们先来用这个公式算出每个世纪第一年3月1日的星期,列
表如下:
年份: 1(401,801,…,2001) 101(501,901,…,2101)
--------------------------------------------------------------------
星期: 4 2
====================================================================
年份:201(601,1001,…,2201) 301(701,1101,…,2301)
--------------------------------------------------------------------
星期: 0 5
可以看出,每隔四个世纪,这个星期就重复一次。假如我们把301(701,1101,…,2301)
年3月1日的星期数看成是-2(按数论中对余数的定义,-2和5除以7的余数相同,所以可
以做这样的变换),那么这个重复序列正好就是一个4,2,0,-2的等差数列。据此,我们
可以得到下面的计算每个世纪第一年3月1日的星期的公式:
W = (4 - C mod 4) * 2 - 4. (6)
式中,C是该世纪的世纪数减一,mod表示取模运算,即求余数。比如,对于2001年3月
1日,C=20,则:
W = (4 - 20 mod 4) * 2 - 4
= 8 - 4
= 4.
把公式(6)代入公式(5),经过变换,可得:
(Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] ≡ (4 - C mod 4) * 2 - 1
(mod 7). (7)
因此,公式(5)中的(Y-1) + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400]这四项,在计算
每个世纪第一年的日期的星期时,可以用(4 - C mod 4) * 2 - 1来代替。这个公式写
出来就是:
W = (4 - C mod 4) * 2 - 1 + [13 * (M+1) / 5] + d. (8)
有了计算每个世纪第一年的日期星期的公式,计算这个世纪其他各年的日期星期的公式
就很容易得到了。因为在一个世纪里,末尾为00的年份是最后一年,因此就用不着再考
虑“一百年不闰,四百年又闰”的规则,只须考虑“四年一闰”的规则。仿照由公式(1)
简化为公式(2)的方法,我们很容易就可以从式(8)得到一个比公式(5)更简单的计算任意
一天是星期几的公式:
W = (4 - C mod 4) * 2 - 1 + (y-1) + [y/4] + [13 * (M+1) / 5] + d. (9)
式中,y是年份的后两位数字。
如果再考虑到取模运算不是四则运算,我们还可以把(4 - C mod 4) * 2进一步改写
成只含四则运算的表达式。因为世纪数减一C除以4的商数q和余数r之间有如下关系:
4q + r = C,
其中r即是 C mod 4,因此,有:
r = C - 4q
= C - 4 * [C/4]. (10)
则
(4 - C mod 4) * 2 = (4 - C + 4 * [C/4]) * 2
= 8 - 2C + 8 * [C/4]
≡ [C/4] - 2C + 1 (mod 7). (11)
把式(11)代入(9),得到:
W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1. (12)
这个公式由世纪数减一、年份末两位、月份和日数即可算出W,再除以7,得到的余数是
几就表示这一天是星期几,唯一需要变通的是要把1月和2月当成上一年的13月和14月,
C和y都按上一年的年份取值。因此,人们普遍认为这是计算任意一天是星期几的最好的
公式。这个公式最早是由德国数学家克里斯蒂安·蔡勒(Christian Zeller, 1822-
1899)在1886年推导出的,因此通称为蔡勒公式(Zeller’s Formula)。为方便口算,
式中的[13 * (M+1) / 5]也往往写成[26 * (M+1) / 10]。
现在仍然让我们来算2004年5月1日的星期,显然C=20,y=4,M=5,d=1,代入蔡勒
公式,有:
W = [20/4] - 40 + 4 + 1 + [13 * (5+1) / 5] + 1 - 1
= -15.
注意负数不能按习惯的余数的概念求余数,只能按数论中的余数的定义求余。为了方便
计算,我们可以给它加上一个7的整数倍,使它变为一个正数,比如加上70,得到55。
再除以7,余6,说明这一天是星期六。这和实际是一致的,也和公式(2)计算所得的结
果一致。
最后需要说明的是,上面的公式都是基于公历(格里高利历)的置闰规则来考虑
的。对于儒略历,蔡勒也推出了相应的公式是:
W = 5 - C + y + [y/4] + [13 * (M+1) / 5] + d - 1. (13)
========================================
(2005-10-20 22:25:00) --------(4575252)
计算任何一天是星期几的几种算法
近日在论坛上看到有人在问星期算法,特别整理了一下,这些算法都是从网上搜索而来,算法的实现是我在项目中写的。希望对大家有所帮助。
一:常用公式
W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D
Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。
二:蔡勒(Zeller)公式
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下,w:星期;c:世纪;y:年(两位数); m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。
相比于通用通用计算公式而言,蔡勒(Zeller)公式大大降低了计算的复杂度。
三:对蔡勒(Zeller)公式的改进
作者:冯思琮
相比于另外一个通用通用计算公式而言,蔡勒(Zeller)公式大大降低了计算的复杂度。不过,笔者给出的通用计算公式似乎更加简洁(包括运算过程)。现将公式列于其下:
W=[y/4]+r (y/7)-2r(c/4)+m’+d
公式中的符号含义如下,r ( )代表取余,即只要余数部分;m’是m的修正数,现给出1至12月的修正数1’至12’如下:(1’,10’)=6;(2’,3’,11’)=2;(4’,7’)=5;5’=0;6’=3;8’=1;(9’,12’)=4(注意:在笔者给出的公式中,y为润年时1’=5;2’=1)。其他符号与蔡勒(Zeller)公式中的含义相同。
四:基姆拉尔森计算公式
这个公式名称是我给命名的,哈哈希望大家不要见怪。
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来代入公式计算。
参考资料:http://zhidao.baidu.com/question/9491607.html
参考技术A import java.util.*;public class Java
public static void main (String[] args)
Calendar cal=Calendar.getInstance();
System.out.println ("请输入年份:");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println ("请输入月份:");
int m=sc.nextInt();
cal.set(n,m-1,1);
System.out.println (cal.getTime());
System.out.println ();
System.out.println ("日\t一\t二\t三\t四\t五\t六");
System.out.println ();
System.out.println ("--\t--\t--\t--\t--\t--\t--");
System.out.println ();
int k=cal.get(Calendar.DAY_OF_WEEK);
for(int j=0;j<k-1;j++)
System.out.print (" ");
System.out.print ("\t");
for(int i=1;i<=cal.getActualMaximum(Calendar.DATE);i++)
System.out.print (i);
System.out.print ("\t");
if((i+k-1)%7==0)
System.out.println ();
System.out.println ();
以上是关于什么是IE插件 请讲详细点好吗的主要内容,如果未能解决你的问题,请参考以下文章
在spring里面有很多的事务,但是这个事务到底是啥东西啊啊啊啊???说的详细点好吗?