科技文献检索报告_第1页
科技文献检索报告_第2页
科技文献检索报告_第3页
科技文献检索报告_第4页
科技文献检索报告_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、科技文献检索综合实习报告 浅谈企业应收账款风险及对策 姓名:付怡霖学院:计算机学院班级:计0822 学号:200825502203 2011.10.121、基础知识问答1.1、信息检索的步骤 信息检索分为六步。 第一,课题分析,明确检索范围;第二,选择检索系统和检索工具;第三,确定检索点 和检索途径;第四,构造检索式;第五,查找和分析检索结果;第六,调整检索方案,满足监所需要。1.2、信息按加工深度分为哪几类并举例。 零次文献(灰色文献即未公开发表的文献),包括书信、手稿、笔记、试验纪录等,未经任何加工整理的信息。 一次文献(原始文献)。指基于作者本人的工作和科研成果而创作的原始论文。 二次文

2、献。是对大量无序的一次文献的收集、加工、整理而成的报道性、检索性的文献资料。 三次文献。是利用二次文献,并在其指导下对大量一次文献进行综合分析研究,加以浓缩和提炼而写成的文献。1.3、叙述检索工具类型并举例。 检索工具按照不同的标准可以划分为不同的种类。 按收录范围划分: 综合性检索工具:中文检索工具(维普中文科技期刊数据库、CNKI的中国期刊全文数据库、万方中国数字化期刊群、NSTL的数据库)和外文检索工具(联机检索系统、网络在线检索系统) 专科性检索工具:中文检索工具(中国人民大学复印报刊资料数据库、其他各类数据库)和外文检索工具(化学文摘、生物学文摘系列、工程索引、医学文献数据库、农业数

3、据库、食品科学与技术文摘、科学文摘数据库ISI INSPEC、学术大全数据库、其他外文数据库) 专题性检索工具:一般是内部使用,例如西南大学图书馆建设的中文期刊特色数据库有文科基地建设专题数据库、重点学科专家论文库等。 全面性检索工具 单一性检索工具 按编制方法划分:目录、文摘和索引等。 按照信息加工的手段或设备划分: 手工检索工具; 机械检索工具; 计算机检索工具。按照信息载体形态划分: 书本检索式工具,包括期刊式、单卷式和附录式; 卡片式检索工具; 缩微式检索工具; 磁性材料式检索工具。 按时间范围划分: 预告性检索工具; 现期通报性检索工具; 回溯性检索工具。 1.4列举检索途径。 检索

4、途径分为:分类途径、主题途径、著者途径和其他途径。 分类途径分类途径是指按照文献资料所属学科(专业)类别进行检索的途径,它所依据的是检索工具中的分类索引。分类途径检索文献关键在于正确理解检索工具的分类表,将待查项目划分到相应的类目中去。一些检索工具如中文科技资料目录是按分类编排的,可以按照分类进行查找。 主题途径主题途径是指通过文献资料的内容主题进行检索的途径,它依据的是各种主题索引或关键词索引,检索者只要根据项目确定检索词(主题词或关键词),便可以实施检索。主题途径检索文献关键在于分析项目、提炼主题概念,运用词语来表达主题概念。主题途径是一种主要的检索途径。 著者途径著者途径是指根据已知文献

5、著者来查找文献的途径,它依据的是著者索引,包括个人著者索引和机关团体索引。 其他途径其他途径包括利用检索工具的各种专用索引来检索的途径。专用索引的种类很多,常见的有各种号码索引(如专利号、入藏号、报告号等),专用符号代码索引(如元素符号、分子式、结构式等),专用名词术语索引(如地名、机构名、商品名、生物属名等)。 1.5列举引文检索工具。目前,大多数科研管理部门将下列四种数据库作为科研评价的权威检索工具:SCI(科学引文索引)、ISTP(科学技术会议录索引)、EI(工程索引)和CSCD(中国科学引文数据库)。还有一些检索工具也可作为科研评价的数据源,如SSCI(社会科学引文索引)、A&HCI(

6、艺术与人文科学引文索引)、新华文摘、人大复印资料、中国社会科学引文索引。2.信息检索2.1课题:浅谈企业应收账款风险及对策关键词:账款风险 信用政策 账款风险2.2万方数据知识服务平台2.2.1分类检索检索式:笼统分析 具体分析 细节分析得出结论按照以上检索式进行检索,共找到相关网页23篇,选择其中一篇。【题 名】应收账款风险及规避对策浅谈 HYPERLINK /Conference_7299255.aspx 【作 者】 HYPERLINK /Paper.aspx?f=detail&q=%e4%bd%9c%e8%80%85%3a%22%e5%88%98%e9%94%a1%e9%a3%9e%22

7、+DBID%3aWF_QK 刘锡飞【原文出处】资质文摘(管理版)【关 键 词】应收账款;风险;对策分析【摘 要】:在企业生产过程中,应收账款作为一种商业信用,在扩大了企业产品销售量增加销售收入的同时,给企业资金的回收和占用也带来了一定的风险,因此,企业应在收益和风险之间进行权衡.本文论述了应收账款的风险,提出了规避风险的对策.该期刊详细内容:2.2.2专业检索。检索式:(“应收账款风险”)and(“对策”)按照专业检索,写入CQL表达式进行检索,过程及结果如下【题 名】应收账款风险管理的对策 HYPERLINK /Conference_7299255.aspx 【作 者】林 HYPERLINK

8、 /Paper.aspx?f=detail&q=%e4%bd%9c%e8%80%85%3a%22%e6%9e%97%e5%bf%97%e5%ae%8f%22+DBID%3aWF_QK 志宏; HYPERLINK /Paper.aspx?f=detail&q=%e4%bd%9c%e8%80%85%3a%22%e4%b9%94%e5%ae%8f%22+DBID%3aWF_QK 乔宏【原文出处】中国乡镇企业会计【关 键 词】 HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%ba%94%e6%94%b6%e8%

9、b4%a6%e6%ac%be%22+DBID%3aWF_QK 应收账款; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e9%a3%8e%e9%99%a9%e7%ae%a1%e7%90%86%22+DBID%3aWF_QK 风险管理 HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e4%bc%81%e4%b8%9a%e8%b4%a2%e5%8a%a1%e7%ae%a1%e7%90%86%22+DBID%3aWF_QK 企业

10、;财务管理; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e6%89%a9%e5%a4%a7%e9%94%80%e5%94%ae%22+DBID%3aWF_QK 扩大销售; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e7%94%9f%e4%ba%a7%e5%92%8c%e5%8f%91%e5%b1%95%22+DBID%3aWF_QK 生产和发展; HYPERLINK /Paper.aspx?f=detail&q=

11、%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%94%ae%e5%90%8e%e6%9c%8d%e5%8a%a1%22+DBID%3aWF_QK 售后服务; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%b8%82%e5%9c%ba%e7%ab%9e%e4%ba%89%22+DBID%3aWF_QK 市场竞争; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%b8%82%e5%9c%b

12、a%e7%bb%8f%e6%b5%8e%22+DBID%3aWF_QK 市场经济; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%b8%82%e5%9c%ba%e4%bb%bd%e9%a2%9d%22+DBID%3aWF_QK 市场份额; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e8%b5%8a%e9%94%80%22+DBID%3aWF_QK 赊销 HYPERLINK /Paper.aspx?f=detai

13、l&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e8%b0%8b%e6%b1%82%e7%94%9f%e5%ad%98%22+DBID%3aWF_QK 谋求生存; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e7%bb%8f%e6%b5%8e%e6%95%88%e7%9b%8a%22+DBID%3aWF_QK 经济效益; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%9d%8f%e8%

14、b4%a6%e6%8d%9f%e5%a4%b1%22+DBID%3aWF_QK 坏账损失; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e4%ba%a7%e5%93%81%e8%b4%a8%e9%87%8f%22+DBID%3aWF_QK 产品质量; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%ba%94%e6%94%b6%e6%ac%be%22+DBID%3aWF_QK 应收款 HYPERLINK /Pape

15、r.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e5%88%b6%e7%ba%a6%22+DBID%3aWF_QK 制约; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e6%94%b6%e7%9b%8a%22+DBID%3aWF_QK 收益; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e7%9b%ae%e6%a0%87%22+DBID%3aWF_QK 目标;

16、HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e8%af%be%e9%a2%98%22+DBID%3aWF_QK 课题; HYPERLINK /Paper.aspx?f=detail&q=%e5%85%b3%e9%94%ae%e8%af%8d%3a%22%e4%bb%b7%e6%a0%bc%22+DBID%3aWF_QK 价格;【摘 要】随着我国市场经济的快速发展,市场竞争日益加剧,企业为了谋求生存和发展,不得不采取各种手段扩大销售抢占市场份额,以提高经济效益.企业为实现这一目标,除了依靠产品质量、价格、售

17、后服务、广告等外,赊销是扩大销售的重要手段.但是,赊销也使企业的应收款金额迅速增加,坏账损失也日益增多,不仅不能给企业带来收益反而严重制约了企业的生产和发展.因此,应收账款的风险管理成为企业财务管理中的重要课题.搜索结果如下:详细内容如下:2.2.3经典文章引文回溯查找(所选文章为应收账款风险及规避对策浅谈)查找第二篇参考文献,所得如下图:2.2.4经典文章引文检索(所选文章为浅谈企业应收帐款的管理对策及风险防范)首先检索到该文章,找到该文章的参考文献,如下图:根据第一篇参考文献,进行引文检索,按照高级检索方式,检索过程及结果如下:2.3百度文库2.3.1初级检索检索式:篇名=浅谈企业应收账款

18、风险及对策用以上的检索式按照基本检索即初级检索检索到相关网页如下,选择其中一篇详细内容如下:2.3.3检索结果中检索结果中搜索如下:课题总结:应收账款是指企业因销售商品、提供劳务等业务,应向购货或接受劳务单位收取的款项,是企业因销售商品、提供劳务等经营活动所形成的债权。主要包括企业出售产品、商品、材料、提供劳务等应向有关债务人收取的价款及代购货方垫付的运杂费等。应收账款的确认是伴随赊销的发生而发生的,其确认时间为销售成立时间。应收账款可以促进销售,增加企业的竞争力,同时可以加速产品销售的实现,加快产成品向销售收入的转化速度,从而降低存货中的产成品数额及相关费用。但不合理的应收账款也会使营业周期

19、延长,影响企业资金循环,使大量的流动资金沉淀在非生产环节上,致使企业现金短缺,加大了企业的财务风险,严重影响企业正常的生产经营。因此,完善应收账款管理机制,对加快货款回收、防范财务风险、提高经营效益具有重要意义。从企业经营全局看,应收账款的产生直接受生产部门、财务部门和销售部门等行为的影响;而产生的应收账款能否顺利回收则直接影响到企业的现金流动,进而影响企业持续经营的顺利进行。因此,企业应该从经营管理全局思考,结合企业战略需求和财务管理目标等,依托生产、销售等部门强化应收账款的日常管理和全面管理。 一、企业应收账款形成原因 (一)商业竞争在社会主义市场经济条件下,市场竞争激烈,企业为在市场竞争

20、中占有一席之地,就必须增加市场份额,扩大市场占有率,提高自身的经济效益。出于扩大销售的竞争需要,企业除利用产品质量、价格、品牌、售后服务、广告等手段外,赊销作为扩大产品销售的重要手段之一,越来越被企业所采用,于是就产生了应收账款。 (二)销售实现和收到款项的时间差企业发出商品后,向购货单位开出销售发票,并在当期确认了销售收入,货款却往往没有同步收回,导致物流与资金流脱节。这种商品销售和收到货款时间的不一致性,导致了应收账款的产生。通常,结算手段越落后,结算所需的时间越长。同时,购销单位之间距离远近、销售结算方式的选择及内部结算单据传递的及时性等都有可能导致应收账款的产生。 (三)应收账款内部管

21、理不力企业缺乏商业信用意识,例如没有认真履行合同约定的条款而违约或因质量异议未能及时处理,导致对方拒付货款;因客户恶意欺诈或销售人员携款潜逃,导致款项无法收回。企业信用管理不力,盲目地对信用不好的企业赊销,加上追讨欠款工作不力,导致货款难以收回等原因形成应收账款。 二、企业应收账款全面管理影响因素分析 (一)应收账款回收责任应收账款回收责任明确与否实质上是根据不同的理念进行管理制度设计的结果。在对多家企业的实践调查和财务分析过程中发现,制度设计中责任明确、激励目标突出、激励指标明确对于应收账款的回收、变现至关重要。例如,A公司自2000年改革其资金管理制度,对应收账款主要采取以下措施:一是对应

22、收账款总额进行控制,明确规定各客户应收账款最高额度不得超过公司应收账款总额的20%,超过比例的异常部分必须调查处理;二是财务部门每月编制账龄分析表,将货款回收情况通报销售部门,及时采取催收措施;三是建立应收账款回收责任制,将账款回笼情况与销售人员奖金挂钩,销售占奖金比例的20% ,而回款占80%,且逾期应收账款按银行贷款利息扣除销售人员的奖金。以上措施的实施取得了明显效果,该企业应收账款由1999年的1.5亿元降到2000年的0.75亿元,降幅达50%. (二)应收账款变现渠道2003年5月财政部发布了关于企业与银行等金融机构之间从事应收债权融资等有关业务会计处理的暂行规定,对应收债权出售和融

23、资的会计处理进行了规范。在2006年财政部颁布的企业会计准则中,将应收账款列为金融资产之列。应收账款融资在直接有效地规避应收账款所带来的风险的同时,可以迅速已低成本筹集企业所需的资金,满足企业因应收账款占用造成短期流动资金不足的融资需求,开辟了企业融资的新渠道。 三、应收账款全面管理措施 (一)利用应收账款产生因素的引导作用应收账款管理应该由财务部门全面负责的观点是错误的,笔者认为应收账款管理是根据企业的发展战略和财务目标为指导,由企业销售部门、开发生产部门、财务部门、物流部门共同完成的一项管理工作。首先,开发生产部门以企业的发展战略和财务目标为指导,在产品开发和生产过程中重视市场的反应,通过

24、产品自身的竞争力优势提高产品市场占有率,在增加收入的同时尽量为降低应收账款发生率提供保证。其次,销售部门应根据企业发展战略和财务目标的指引,充分利用信用调查等方法,在销售过程中积极为企业创造销售业绩,合理选择赊销客户和信用额度,尽量少产生应收账款。再次,财务部门作为企业管理信息服务部门,应根据企业的发展战略,明确企业的财务发展目标,并且定期编制账龄分析表、销售收入表、产品市场占有率变动情况表等,为促进各部门改善各自的发展状况,提高利润创造力、降低应收账款产生率提供优质信息服务。 (二)发挥制度激励作用 在应收账款管理中,制度最大的作用就是尽量保证应收账款的质量。即在完成财务目标的前提下尽量减少

25、应收账款,明晰信用销售网络及客户名单,形成的应收账款能在信用期内有效变现、回收。本文提出如下制度设计方式: (1)加强销售部门对应收账款管理的积极性,主要控制应收账款回收率,兼顾应收账款占流动资产比率的控制。销售过程中营销人员对应收账款回收责任的大小直接决定了销售人员选择赊销的可能性或选择赊销客户、信用额度等的谨慎程度。同时,应收账款占流动资产的比率控制可以有效增强销售部门整体销售的积极创现行为,促使其将销售过程中遇到的产品问题及时反馈给生产开发部门等,形成良性循环。 (2)加强财务部门对应收账款管理的辅助服务作用。事实上,财务部门不仅提供财务信息,还参与财务决策,监督企业经济行为。财务部门直

26、接参与财务目标、现金预算等工作,对企业总体发展目标非常明确,并帮助企业有效地完成财务目标。所以,可以 “辅助各个部门完成财务任务,就是帮助自己完成任务”为激励机制,从完成企业总体发展财务目标的角度,激励财务部门为各部门积极提供及时准确的财务信息。 (3)加强开发生产部门对应收账款管理的辅助作用。如果产品本身供不应求或者存在制胜优势,应收账款自然就会降低。所以,可以将开发生产部门的业绩奖励与产品在市场上的前期销售业绩挂钩,力争创造有价值的订单。目前,这种制度已经在一些公司内部得到有效应用,并创造了良好业绩。 (三)借助应收账款出售与融资渠道提高变现能力应收账款产生之后,企业除了积极催收以外,还应

27、尽量想办法对其进行利用。应收账款融资业务是银行根据商务合同交易双方之间的赊销行为而设计的一种金融产品。卖方将商务合同所产生的应收账款转让给银行,由受让银行提供贸易融资等金融服务。应收账款融资可以迅速满足企业因应收账款占用造成短期流动资金不足的融资需求。应收账款在企业资产中是属于变现能力强、风险低的优质资产,其变现能力仅排在货币资金和短期投资之后。因此,企业为解决临时资金紧张,将应收账款出售给银行或以其作质押,银行和企业都乐而为之。随着我国市场信用体制的不断完善,企业通过应收账款出售和质押进行融资的业务也逐步开展起来。因此,企业可以积极尝试利用应收账款融资,提高应收账款变现能力,规避坏账、呆账风

28、险。 附录资料:不需要的可以自行删除C语言中如何获取时间?精度如何?1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount() 精确到毫秒5 如果使用MFC的CTime类,可以用CTime:GetCurrentTime() 精确到秒6 要获取高精度时间,可以使用BOOL QueryPerformanceFrequency(

29、LARGE_INTEGER *lpFrequency)获取系统的计数器的频率BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)获取计数器的值然后用两次计数器的差除以Frequency就得到时间。7 Multimedia Timer FunctionsThe following functions are used with multimedia timers.timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime/*/用标准C实现获取当前系统时间的函

30、数一.time()函数time(&rawtime)函数获取当前时间距1970年1月1日的秒数,以秒计数单位,存于rawtime 中。#include time.hvoid main ()time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );printf ( 007The current date/time is: %s, asctime (timeinfo) );exit(0);=#include - 必须的时间函数头文件time_t - 时间类型(time.h 定义是ty

31、pedef long time_t; 追根溯源,time_t是long)struct tm - 时间结构,time.h 定义如下:int tm_sec;int tm_min;int tm_hour;int tm_mday;int tm_mon;int tm_year;int tm_wday;int tm_yday;int tm_isdst;time ( &rawtime ); - 获取时间,以秒计,从1970年1月一日起算,存于rawtimelocaltime ( &rawtime ); - 转为当地时间,tm 时间结构asctime ()- 转为标准ASCII时间格式:星期 月 日 时:分:

32、秒 年-二.clock()函数,用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成“秒”,标准c函数。clock_t clock ( void );#includeclock_t t = clock();long sec = t / CLOCKS_PER_SEC;他是记录时钟周期的,实现看来不会很精确,需要试验验证;-三.gettime(&t); 据说tc2.0的time结构含有毫秒信息#include#includeint main(void)struct time t;gettime(&t);printf(The current time

33、is: -:d:d.dn,t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);return 0;time 是一个结构体, 其中成员函数 ti_hund 是毫秒。-四.GetTickCount(),这个是windows里面常用来计算程序运行时间的函数;DWORD dwStart = GetTickCount();/这里运行你的程序代码DWORD dwEnd = GetTickCount();则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位这个函数只精确到55ms,1个tick就是55ms。-五.timeGetTime()t,imeGetTime

34、()基本等于GetTickCount(),但是精度更高DWORD dwStart = timeGetTime();/这里运行你的程序代码DWORD dwEnd = timeGetTime();则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位虽然返回的值单位应该是ms,但传说精度只有10ms。=/*Unix#unix时间相关,也是标准库的/*1.timegm函数只是将struct tm结构转成time_t结构,不使用时区信息;time_t timegm(struct tm *tm);2.mktime使用时区信息time_t mktime(struct tm *tm);time

35、local 函数是GNU扩展的与posix函数mktime相当time_t timelocal (struct tm *tm);3.gmtime函数只是将time_t结构转成struct tm结构,不使用时区信息;struct tm * gmtime(const time_t *clock);4.localtime使用时区信息struct tm * localtime(const time_t *clock);1.time获取时间,stime设置时间time_t t;t = time(&t);2.stime其参数应该是GMT时间,根据本地时区设置为本地时间;int stime(time_t *

36、tp)3.UTC=true 表示采用夏时制;4.文件的修改时间等信息全部采用GMT时间存放,不同的系统在得到修改时间后通过localtime转换成本地时间;5.设置时区推荐使用setup来设置;6.设置时区也可以先更变/etc/sysconfig/clock中的设置再将ln -fs /usr/share/zoneinfo/xxxx/xxx /etc/localtime 才能重效time_t只能表示68年的范围,即mktime只能返回1970-2038这一段范围的time_t看看你的系统是否有time_t64,它能表示更大的时间范围/*windows#Window里面的一些不一样的/*一.CTi

37、me () 类VC编程一般使用CTime类 获得当前日期和时间CTime t = GetCurrentTime();SYSTEMTIME 结构包含毫秒信息typedef struct _SYSTEMTIME WORD wYear;WORD wMonth;WORD wDayOfWeek;WORD wDay;WORD wHour;WORD wMinute;WORD wSecond;WORD wMilliseconds; SYSTEMTIME, *PSYSTEMTIME;SYSTEMTIME t1;GetSystemTime(&t1)CTime curTime(t1);WORD ms = t1.wM

38、illiseconds;SYSTEMTIME sysTm;:GetLocalTime(&sysTm);在time.h中的_strtime() /只能在windows中用char t11;_strtime(t);puts(t);/*获得当前日期和时间CTime tm=CTime:GetCurrentTime();CString str=tm.Format(%Y-%m-%d);在VC中,我们可以借助CTime时间类,获取系统当前日期,具体使用方法如下:CTime t = CTime:GetCurrentTime(); /获取系统日期,存储在t里面int d=t.GetDay(); /获得当前日期i

39、nt y=t.GetYear(); /获取当前年份int m=t.GetMonth(); /获取当前月份int h=t.GetHour(); /获取当前为几时int mm=t.GetMinute(); /获取当前分钟int s=t.GetSecond(); /获取当前秒int w=t.GetDayOfWeek(); /获取星期几,注意1为星期天,7为星期六二.CTimeSpan类如果想计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:CTime t1( 1999, 3, 19, 22, 15, 0 );CTime t = CTime:GetCurrentTime();CTim

40、eSpan span=t-t1; /计算当前系统时间与时间t1的间隔int iDay=span.GetDays(); /获取这段时间间隔共有多少天int iHour=span.GetTotalHours(); /获取总共有多少小时int iMin=span.GetTotalMinutes();/获取总共有多少分钟int iSec=span.GetTotalSeconds();/获取总共有多少秒-三._timeb()函数_timeb定义在SYSTIMEB.H,有四个fieldsdstflagmillitmtimetimezonevoid _ftime( struct _timeb *timept

41、r );struct _timeb timebuffer;_ftime( &timebuffer );取当前时间:文档讲可以到ms,有人测试,好象只能到16ms!四.设置计时器定义TIMER ID#define TIMERID_JISUANFANGSHI 2在适当的地方设置时钟,需要开始其作用的地方;SetTimer(TIMERID_JISUANFANGSHI,200,NULL);在不需要定时器的时候的时候销毁掉时钟KillTimer(TIMERID_JISUANFANGSHI);对应VC程序的消息映射void CJisuan:OnTimer(UINT nIDEvent)switch(nIDE

42、vent)-#如何设定当前系统时间-windowsSYSTEMTIME m_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wM;m_myLocalTime.wDay=1;m_myLocalTime.wHour=0;m_myLocalTime.wMinute=0;m_myLocalTime.wSec;m_myLocalTime.wMillisec;lpSystemTime=&m_myLocalTime;if( SetLocalTime(lpSystemTime) ) /此处换成 SetSystemTime( )也

43、不行MessageBox(OK !);elseMessageBox(Error !);SYSTEMTIME m_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wM;m_myLocalTime.wDay=1;lpSystemTime=&m_myLocalTime;if( SetDate(lpSystemTime) ) /此处换成 SetSystemTime( )也不行MessageBox(OK !);elseMessageBox(Error !);本文来自CSDN博客,转载请标明出处:HYPERLINK /khu

44、ang2008/archive/2008/12/09/3483274.aspx/khuang2008/archive/2008/12/09/3483274.aspx一种制作微秒级精度定时器的方法当使用定时器时,在很多情况下只用到毫秒级的时间间隔,所以只需用到下面的两种常用方式就满足要求了。一是用SetTimer函数建立一个定时器后,在程序中通过处理由定时器发送到线程消息队列中的WM_TIMER消息,而得到定时的效果(退出程序时别忘了调用和SetTimer配对使用的KillTimer函数)。二是利用GetTickCount函数可以返回自计算机启动后的时间,通过两次调用GetTickCount函数

45、,然后控制它们的差值来取得定时效果,此方式跟第一种方式一样,精度也是毫秒级的。用这两种方式取得的定时效果虽然在许多场合已经满足实际的要求,但由于它们的精度只有毫秒级的,而且在要求定时时间间隔小时,实际定时误差大。下面介绍一种能取得高精度定时的方法。在一些计算机硬件系统中,包含有高精度运行计数器(high-resolution performance counter),利用它可以获得高精度定时间隔,其精度与CPU的时钟频率有关。采用这种方法的步骤如下:1、首先调用QueryPerformanceFrequency函数取得高精度运行计数器的频率f。单位是每秒多少次(n/s),此数一般很大。2、在需

46、要定时的代码的两端分别调用QueryPerformanceCounter以取得高精度运行计数器的数值n1,n2。两次数值的差值通过f换算成时间间隔,t=(n2-n1)/f。下面举一个例子来演示这种方法的使用及它的精确度。在VC 6.0 下用MFC建立一个对话框工程,取名为HightTimer.在对话框面板中控件的布局如下图:其中包含两个静态文本框,两个编辑框和两个按纽。上面和下面位置的编辑框的ID分别为IDC_E_TEST和IDC_E_ACTUAL,通过MFC ClassWizard添加的成员变量也分别对应为DWORD m_dwTest和DWORD m_dwAct. “退出”按纽的ID为IDO

47、K,“开始测试”按纽ID为IDC_B_TEST,用MFC ClassWizard添加此按纽的单击消息处理函数如下:void CHightTimerDlg:OnBTest()/ TODO: Add your control notification handler code hereUpdateData(TRUE); /取输入的测试时间值到与编辑框相关联的成员变量m_dwTest中LARGE_INTEGER frequence;if(!QueryPerformanceFrequency( &frequence) /取高精度运行计数器的频率,若硬件不支持则返回FALSEMessageBox(You

48、r computer hardware doesnt support the high-resolution performance counter,Not Support, MB_ICONEXCLAMATION | MB_OK);LARGE_INTEGER test, ret;test.QuadPart = frequence.QuadPart * m_dwTest / 1000000; /通过频率换算微秒数到对应的数量(与CPU时钟有关),1秒=1000000微秒ret = MySleep( test ); /调用此函数开始延时,返回实际花销的数量m_dwAct = (DWORD)(100

49、0000 * ret.QuadPart / frequence.QuadPart ); /换算到微秒数UpdateData(FALSE); /显示到对话框面板其中上面调用的MySleep函数如下:LARGE_INTEGER CHightTimerDlg:MySleep(LARGE_INTEGER Interval)/ 功能:执行实际的延时功能 / 参数:Interval 参数为需要执行的延时与时间有关的数量 / 返回值:返回此函数执行后实际所用的时间有关的数量 / LARGE_INTEGER privious, current, Elapse;QueryPerformanceCounter(

50、&privious );current = privious;while( current.QuadPart - privious.QuadPart Interval.QuadPart )QueryPerformanceCounter( t );Elapse.QuadPart = current.QuadPart - privious.QuadPart;return Elapse;注:别忘了在头文件中为此函数添加函数声明。至此,可以编译和执行此工程了,结果如上图所示。在本人所用的机上(奔腾366, 64M内存)测试,当测试时间超过3微秒时,准确度已经非常高了,此时机器执行本身延时函数代码的时间

51、对需要延时的时间影响很小了。上面的函数由于演示测试的需要,没有在函数级封装,下面给出的函数基本上可以以全局函数的形式照搬到别的程序中。BOOL MySleep(DWORD dwInterval)/ 功能:执行微秒级的延时功能 / 参数:Interval 参数为需要的延时数(单位:微秒) / 返回值:若计算机硬件不支持此功能,返回FALSE,若函数执行成功,返回TRUE / BOOL bNormal = TRUE;LARGE_INTEGER frequence, privious, current, interval;if(!QueryPerformanceFrequency( &frequen

52、ce):MessageBox(NULL, Your computer hardware doesnt support the high-resolution performance counter,Not Support, MB_ICONEXCLAMATION | MB_OK); /或其它的提示信息return FALSE;interval.QuadPart = frequence.QuadPart * dwInterval / 1000000;bNormal = bNormal & QueryPerformanceCounter( &privious );current = privious

53、;while( current.QuadPart - privious.QuadPart interval.QuadPart )bNormal = bNormal & QueryPerformanceCounter( t );return bNormal;需要指出的是,由于在此函数中的代码很多,机器在执行这些代码所花费的时间也很长,所以在需要几个微秒的延时时,会影响精度。实际上,读者在熟悉这种方法后,只要使用QueryPerformanceFrequency和QueryPerformanceCounter这两个函数就能按实际需要写出自己的延时代码了。使用CPU时间戳进行高精度计时对关注性能的程

54、序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗糙了。另一种是QueryPerformanceCount计数器,随系统的不同可以提供微秒级的计数。对于实时图形处理、多媒体数据流处理、或者实时系统构造的程序员,善用QueryPerformanceCount/QueryPerforma

55、nceFrequency是一项基本功。本文要介绍的,是另一种直接利用Pentium CPU内部时间戳进行计时的高精度计时手段。以下讨论主要得益于Windows图形编程一书,第15页17页,有兴趣的读者可以直接参考该书。关于RDTSC指令的详细讨论,可以参考Intel产品手册。本文仅仅作抛砖之用。在Intel Pentium以上级别的CPU中,有一个称为“时间戳(Time Stamp)”的部件,它以64位无符号整型数的格式,记录了自CPU上电以来所经过的时钟周期数。由于目前的CPU主频都非常高,因此这个部件可以达到纳秒级的计时精度。这个精确性是上述两种方法所无法比拟的。在Pentium以上的CP

56、U中,提供了一条机器指令RDTSC(Read Time Stamp Counter)来读取这个时间戳的数字,并将其保存在EDX:EAX寄存器对中。由于EDX:EAX寄存器对恰好是Win32平台下C+语言保存函数返回值的寄存器,所以我们可以把这条指令看成是一个普通的函数调用。像这样:inline unsigned _int64 GetCycleCount() _asm RDTSC 但是不行,因为RDTSC不被C+的内嵌汇编器直接支持,所以我们要用_emit伪指令直接嵌入该指令的机器码形式0X0F、0X31,如下:inline unsigned _int64 GetCycleCount() _as

57、m _emit 0 x0F _asm _emit 0 x31 以后在需要计数器的场合,可以像使用普通的Win32 API一样,调用两次GetCycleCount函数,比较两个返回值的差,像这样: unsigned long t; t = (unsigned long)GetCycleCount(); /Do Something time-intensive . t -= (unsigned long)GetCycleCount(); Windows图形编程第15页编写了一个类,把这个计数器封装起来。有兴趣的读者可以去参考那个类的代码。作者为了更精确的定时,做了一点小小的改进,把执行RDTSC指

58、令的时间,通过连续两次调用GetCycleCount函数计算出来并保存了起来,以后每次计时结束后,都从实际得到的计数中减掉这一小段时间,以得到更准确的计时数字。但我个人觉得这一点点改进意义不大。在我的机器上实测,这条指令大概花掉了几十到100多个周期,在Celeron 800MHz的机器上,这不过是十分之一微秒的时间。对大多数应用来说,这点时间完全可以忽略不计;而对那些确实要精确到纳秒数量级的应用来说,这个补偿也过于粗糙了。 这个方法的优点是: 1.高精度。可以直接达到纳秒级的计时精度(在1GHz的CPU上每个时钟周期就是一纳秒),这是其他计时方法所难以企及的。 2.成本低。timeGetTime 函数需要链接多媒体库winmm.lib,QueryPerformance* 函数根据MSDN的说明,需要硬件的支持(虽然我还没有见过不支持的机器)和KERNEL库的支持,所以二者都只能在Windows平台下使用(关于DOS平台下的高精度计时问题,可以参考图形程序开发人员指南,里面有关于控制定时器8253的详细说明)。但RDTSC指令是一条CPU指令,凡是i386平台下Pen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论