如何将十进制数字(例如<?php
include ('db_connect.php');
$sql="select * from institution";
$result= mysqli_query($conn, $sql);
while ($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['ins_id'] . "</td>";
echo "<td>" . $row['ins_name'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "<td>" . $row['contact'] . "</td>";
echo "<td><a href=" . $row['website'] . ">" . $row['website'] . "</a></td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>"
?>
)转换为年份和月份(2年零6个月)并将其添加到指定日期?我试过2.5
但它没有用。
答案 0 :(得分:9)
如果您使用它多年,那么将您的浮动乘以12. 2.5变为30个月。然后使用addmonths函数。如果我输入5那么它将增加60个月,即5年
答案 1 :(得分:2)
如果您的初始日期为dt
而不是
dt = dt.AddMonths((int)(2.5*12));
答案 2 :(得分:2)
通常您只需添加TimeSpan
或使用其中一种Add
方法,如下所示:
decimal yearsToAdd = (decimal)2.5;
int years = (int)Math.Floor(yearsToAdd);
decimal months = yearsToAdd - years;
int actualMonths = (int) Math.Floor(months * 12); // or Ceiling or Round
DateTime x = DateTime.Now.AddYears(years).AddMonths(actualMonths);
问题是,当你的小数没有产生exacat数月时,你怎么知道多长时间,例如半个月是?
28.0 / 2
,29.0 / 2
,30.0 / 2
或31.0 / 2
?
你会花一个月的长度或最后一个可能的两个月吗?
答案 3 :(得分:0)
decimal x =(decimal)2.5;
int nbYear = Convert.ToInt16(x);
var y = x - Math.Truncate(x);
int nbMonth =Convert.ToInt16 (y*12);
// MessageBox .Show (string.Format (" {0} years and {1} months ",nbYear ,nbMonth ));
DateTime dat=DateTime .Now ; // or given date
DateTime dat2 = dat.AddYears(nbYear).AddMonths(nbMonth);
答案 4 :(得分:0)
如果月份是你的最小单位,那么正如许多人所指出的那样,解决方案是将数字乘以12.更准确的替代方法是使用滴答。
decimal years=3.14592M; // No idea where this came from.
long ticks = (long)(356.0M * (decimal)TimeSpan.TicksPerDay * years);
DateTime futureDate=DateTime.Today.AddTicks(ticks);
请注意,解决方案不会弥补闰年。扩展它并不困难 - 您需要计算该期间的闰年数量,并使用平均值而不是356.0M来计算每年的蜱虫数量(即平均每年的天数*每天蜱虫数量)。