TEXT(SUM(DATEDIF(A1,NOW(),{"y","ym","md"})*10^{4,2,0}),"0年00月00天")

作者&投稿:卓容 (若有异议请与网页底部的电邮联系)
世界编程语言这么多,为什么中学竞赛选择pascal~

因为pascal语言最严谨(程序的可读性好),支持的数据类型丰富,系统库(函数库、过程库)完善,编译速度最快,编译的目标代码效率高。对标准输入、输出的使用较C语言方便,无须象C语言那样在程序头部包含一堆的头文件。

楼上的回答第3、4、6三点有失偏颇。1、tp是商业软件,fp是免费软件,fp是一个德国的小伙子打的基础,以tp为蓝本,一开始就是32位的,不会去要求borland做什么的;2、fp的库都是自已构建的,只是做到与tp兼容罢了;3、还是有少数c能做的,pascal则否。

很简单,case关键字后面跟上某种类型,然后分支的序号与该类型保持一致就行,例如:
type
IntRec1 = packed record
ID: ShortString;
case Integer of
3: (
Param: Integer);
5: (
ParamLo: Word;
ParamHi: Byte);
end;

IntRec2 = packed record
ID: ShortString;
case Char of
'c': (
Param: Integer);
'e': (
ParamLo: Word;
ParamHi: Byte);
end;

IntRec3 = packed record
ID: ShortString;
case Boolean of
True: (
Param: Integer);
False: (
ParamLo: Word;
ParamHi: Byte);
end;
1、以上Param和ParamLo/ParamHi是变体结构的两个不同分支,可以用Param域直接访问该变体的整数部分(Integer),也可以用ParamLo域访问该整数部分的低16位(Word),用ParamH域i访问高8位(Byte)。
2、变体结构的大小,取决于占空间最大的分支,如本题中Integer(4字节)>Word(2字节)+Byte(1字节),因此本题三个变体结构大小均为256+4=260字节。
3、case后面的类型与分支标识的类型保持一致就行了,分支标识随便写什么都行(Integer与3、5,Char与'c'、'e',Boolean与True、False)。以上三种声明方法都声明的同一种类型。
4、为了能精确访问变体结构的域,一般要加packed关键字,防止编译器自动对齐。
5、变体结构在日常编程中用的不多,它大量使用在对Windows API的翻译中。

DATEDIF求出了A1的日期到今天的年、忽略年的月数差、忽略年月的天数差,共3个值组成数组,比如1年又3个月5天,那么DATEDIF返回数组为{1,3,5}
10^{4,2,0}分别是10的4、2、0次方即10000、100、1
{1,3,5}*{10000,100,1}得到{10000,300,5}
再用SUM求和得到10305
最后TEXT函数将10305转为“1年03月05天”。

更多精彩,尽在“Excel疑难千寻千解”丛书,样章下载:http://hi.baidu.com/gouweicao78/blog/item/b1a889cbf105ad57f31fe759.html

看看这个是否有用:http://msdn.microsoft.com/zh-cn/library/txafckwd(VS.80).aspx


msp430单片机到底有哪些寄存器,分别干嘛用?
#define SUMEXT_ 0x013E \/*结果扩展寄存器 *\/const sfrw SUMEXT = SUMEXT_;MSP430寄存器中文注释---看门狗和定时器\/*** 看门狗定时器的寄存器定义***\/#define WDTCTL_ 0x0120 sfrw WDTCTL = WDTCTL_;#define WDTIS0 0x0001 \/*选择WDTCNT的四个输出端之一*\/#define WDTIS1 0x0002 \/*选择WDTCNT的四...

请把这个mt4源码该成通达信的公式,xiexie ~ {SUPERTREND指标(Mt4...
就这末一句代码 {SUPERTREND指标(Mt4)} -- Indicator profile initialization 不懂得啥意思

HS SOS Qod Biw ID 在医学里是什么意思?
HS:睡前 Biw:每周1次 sos:需要时 QOD:隔日一次 ID:皮内注射。皮内注射,是把药物注射到皮肤的表皮以下,一般是真皮层以上,不到皮下组织。(一些疫苗多是这样的,还有药敏实验,还有局麻的前部操作)肌肉注射位置更深一些,深达肌肉组织。

求大师修改绿色编红色选股公式
D11:=HIGH>H1 AND LOW>=L1 AND CLOSE<=REF(CLOSE,1);D2:=LOW<L1 AND HIGH<H1;D3:=HIGH>H1 AND LOW<L1 AND CLOSE>REF(CLOSE,1);D31:=HIGH>H1 AND LOW<L1 AND CLOSE<=REF(CLOSE,1);D4:=HIGH<=H1 AND LOW>=L1;FR1:SUM(IF(D1,HIGH,IF(D11,LOW,IF(D2,-HIGH,IF(D3,HI...

用pascal语言计算圆周率
program spi;uses crt;{ pi=16acrtg(1\/5)-4arctg(1\/239) } { pi\/4=1\/1*(20\/25-239\/57121)-1\/3(20\/25^2-239\/57121^2)+... } label ext,ext2;const dn=2502;var i,ip,c:integer;k:longint;a,b,sum:array[1..dn] of integer;procedure oupt;var i:integer;k:longint...

请教高手,通达信在刚出现红色线段时的选股公式
SHORT:=12;LONG:=26;DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);CROSS(DIF,REF(DIF,1))&&DIF<0&&DIF>REF(DIF,1);

Oracle监控的关键指标有哪些?
1、监控事例的等待selectevent,sum(decode(wait_Time,0,0,1))"Prev", sum(decode(wait_Time,0,1,0))"Curr",count(*)"Tot" from v$session_Wait groupbyevent order by4; 2、回滚段的争用情况select name, waits, gets, waits\/gets "Ratio" from v$rollstat a, v$rollname b where a...

通达信公式,看看哪里出错了,MACD:2*(DIFF-DEA),COLORSTICK说是这里...
朋友,我这边刚测试过,这公式是没有问题的:

怎么批量添加文件前缀
不要执行第二次。pause echo 开始重命名……set \/p ext= input extname(txt):set \/p fn=input forfilename number(1):setlocal enabledelayedexpansion set \/a sum=%fn for %%i in (*.%ext%) do (ren "%%i" "!sum!_%%i"set \/a sum+=1 )set \/a sum= del \/f\/q %0 ...

怎么批量修改txt的前缀序号呢?
不要执行第二次。pause echo 开始重命名……set \/p ext= input extname(txt):set \/p fn=input forfilename number(1):setlocal enabledelayedexpansion set \/a sum=%fn for %%i in (*.%ext%) do (ren "%%i" "!sum!_%%i"set \/a sum+=1 )set \/a sum= del \/f\/q %0 ...

峨边彝族自治县17581132591: 求excel日期差公式 -
铎的罗红: 输入以下公式,然后向下填充公式 =TEXT(SUM(DATEDIF(A1,B$1,{"y","ym","md"})*{10000,100,1}),"0年00月00日")

峨边彝族自治县17581132591: EXCEL如何根据入职日期计算工作时间
铎的罗红: A1单元格为入职日期,B1单元格输入函数“=TEXT(SUM(DATEDIF(A1,TODAY(),{"y","ym","md"})*10^{4,2,0}),"0年00月00天")”(输入时“”号去掉),返回截至系统当前日期的工作年数、零头月数、零头天数. 如果要计算到指定日的工作时间,则在B1单元格录入指定日期,在C1单元格输入函数“=TEXT(SUM(DATEDIF(A1,B1,{"y","ym","md"})*10^{4,2,0}),"0年00月00天")”(输入时“”号去掉),返回截至指定日的工作年数、零头月数、零头天数.

峨边彝族自治县17581132591: TEXT(SUM(DATEDIF(A1,TODAY(),{"Y","YM","MD"})*10^{4,2,0}),"0年00个月00天") -
铎的罗红: DATEDIF(A1,TODAY(),{"Y","YM","MD"})这个会返回A1的年月日与今天的年月日的差结果为{年,月,日} 比如A1=2012-6-15 那么返回{0,1,11} *10^{4,2,0} 就是每位乘以10^4,10^2,10^0,及上面的与{10000,100,1}每位相乘结果为{0,100,11}明白了吧

峨边彝族自治县17581132591: excel 两个日期间如何计算月份及天数 2010 - 8 - 12 至2011 - 5 - 3 2010 - 11 - 5至2011 - 7 - 25 这之间是几个月几天 -
铎的罗红: 开始日期在A列,结束日期在B列 C公式 =TEXT(SUM(DATEDIF(A1,B1,{"M","MD"})*10^{2,0}),"#个月##天") 公式下拉完成 或 =DATEDIF(A1,B1,"M")&"个月"&DATEDIF(A1,B1,"MD")&"天" 公式下拉完成

峨边彝族自治县17581132591: Excel 怎么按年算工龄 -
铎的罗红: 1、用Today返回当前日期(与当前电脑设置日期一致)2、用Datedif分别返回入职日期到当前日期的间隔整年、整月、天数3、用&连接年月天或对年、月、天数加权后再用Text调整格式 Datedif是隐藏函数,用于计算两日期之间的间隔时间 语法...

峨边彝族自治县17581132591: excel2010有哪些基本公式并且写出公式的基本格式 -
铎的罗红: 常用的函数有sum,left,text,vlookup,if等等,用这些函数就能组成基本的公式 详细如下: 1.利用sum函数写求和公式: 用法=sum(求和区域),比如sum(A1:B2,D1:E2),就是求A1:B2和D1:E2两个区域内所有数值的和; 2.利用left函数写从左边...

峨边彝族自治县17581132591: 如何用函数公式把工龄计算到月份,每行退休时间都不一样 -
铎的罗红: F2中输入公式:=SUBSTITUTE(TEXT(SUM(DATEDIF(A1,B1,{"y","ym"})*{100,1}),"[>99]0年00月;[>0]#月;"),"00月","整")下拉.

峨边彝族自治县17581132591: excel 计算日期相差的年月日 -
铎的罗红: 你的公式很牛,能写出这样的公式已经是高手了.不过有点复杂...直接使用Text就能返回2008-08-08这样格式的.=TEXT(D2-IF(B2="新投犯",C2,E2),"Y年MM月DD日")******* 当B为新投犯时,F=D-C;当B为老犯时,F=D-E D2-IF(B2="新投犯",C2,E2) 我这段就是根据你这段话得到的.是不是B2单元格的内容不是叫"新投犯"?******* 有点不太明白,D2-IF(B2="新投犯",C2,E2) 这个公式的意思是"新投犯"是D2-C2,不是"新投犯"D2-E2"新投犯"是不管E2什么事情的,不管它空白不空白.E2也要写公式吗?还是D2-这个D2不对?

峨边彝族自治县17581132591: 常用的EXCEL函数使用方法有哪些 -
铎的罗红: 这里举一些关于Excel中日常工作需要的一些函数公式: 1、ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值. 使用格式:ABS(number) 参数说明:number代表需要求绝对值的数值或引用的单元格. 应用举例:如果在B2单元格中输...

峨边彝族自治县17581132591: EXCEL中 计算某年某月和某年某月相差几个月 -
铎的罗红: =datedif(a1,today(),"y")&"年"&datedif(a1,today(),"ym")&"月" 必须先保证你的格式是日期

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网