Solidity是以太坊智能合约编程语言,当然你在阅读这篇文章之前,你应该对以太坊、智能合约有初步或者深入的了解,当然你还是不了解的话,建议你先去看以太坊是什么。
时间单位
时间单位:seconds,minutes,hours,days,weeks,years均可做为后缀,并进行相互转换,规则如下:
1==1seconds(默认是seconds为单位)
1minutes==60seconds
1hours==60minutes
1days==24hours
1weeks=7days
1years=365days
使用这些单位进行日期计算需要特别小心,因为不是每年都是365天,闰年是366天,且并不是每天都有24小时,因为还有闰秒。由于无法预测闰秒,必须由外部的预言来更新从而得到一个精确的日历库。
这些后缀不能用于变量。如果想对输入的变量说明其不同的单位,可以使用下面的方式:
pragmasolidity^0.4.16;contracttestTUnit{functioncurrTimeInSeconds()publicpurereturns(uint256){returnnow;}functionf(uintstart,uintdaysAfter)public
{if(now>=start+daysAfter*1days)
{//……}}}
货币单位
一个字面量后面跟随一个后缀wei、finney、szabo或者ether,这些后缀就是货币单位,不同的单位可以转换。不含任何后缀的默认单位是wei。不同的以太币单位转换关系如下:
1ether==10^18wei
1ether==10^6szabo
1ether==10^3finney
1ether==1000finney
我们可以使用以下代码验证一个转换关系:
pragmasolidity^0.4.16;contracttestUnit{functiontf()publicpurereturns(bool){if(1ether==1000finney){returntrue;}returnfalse;}functionts()publicpurereturns(bool){if(1ether==1000000szabo){returntrue;}returnfalse;}functiontgw()publicpurereturns(bool){if(1ether==1000000000000000000wei){returntrue;}returnfalse;}}
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。