Excel yearfrac()stardate clock

时间:2017-04-12 22:57:14

标签: excel

我试图像星际迷航中的明星约会一样,让年度工作的时间缩短至秒。 我把它放在excel或google sheet单元格中,效果很好 -

=(YEARFRAC(DATE(YEAR(NOW()),1,1),NOW()))+(YEAR(NOW()))

2017年4月13日获得2017.283。这对于我想要的2017年那么“非常好”。去年的百分比。但要在“。”之后做一点。更准确我想包括时间所以它更像2017.28345。 那可能吗?然后我想把这个公式放在一个数字的网页上,这样我就可以像时钟一样检查它,也许是PHP。

2 个答案:

答案 0 :(得分:1)

首先,要小心YEARFRAC。如果没有将Basis指定为1以使用一年中的实际天数,则默认情况下会计算假设所有月份都有30天并且一年中只有360天的分数。

https://support.office.com/en-us/article/YEARFRAC-function-3844141e-c76d-4143-82b6-208454ddc6a8

它更安全,是一个完全自行计算分数的解决方案:

=YEAR(TODAY())+(NOW()-DATE(YEAR(TODAY()),1,1))/(DATE(YEAR(TODAY())+1,1,1)-DATE(YEAR(TODAY()),1,1))

这只计算现在全年(包括时间)的分数,并将其添加到年份。使用(DATE(YEAR(TODAY())+1,1,1)-DATE(YEAR(TODAY()),1,1))计算一年中的天数以处理闰年。

此公式使用基本功能,因此您应该能够将其翻译成其他语言,而无需链接到Excel以访问YEARFRAC功能。

答案 1 :(得分:0)

我这样做是为了做到这一点 -

<html>
 <head>
<meta http-equiv="refresh" content="1" >
  <title>Current Stardate</title>
 </head>
 <body><center>
<?php
$year = date(Y);
$day = date(z);
$hours = date(H);
$minutes = date(i);
$seconds = date(s);
$stardate = ($day/365)+$year;
$stardatetime = (($day+(($hours+(($minutes+($seconds/60))/60))/24))/365)+$year;
?>
 <p>The current stardate is: </br><?php echo round($stardate, 5) ?></p>
 <p>The current stardate with time is: </br><?php echo round($stardatetime, 8) ?></p>
<p><?php echo "The current earth date is: </br>" . date("l, d M Y. Hm:s") . " hours<br>"; ?></p>
 </center></body>
</html>

我需要做一个if else {}闰年才能让它变得更好。 如果有更好的方法,请告诉我。