帕斯卡的模数
Modulus in Pascal
本文关键字:帕斯卡 更新时间:2023-10-16
我正试图将一些Pascal代码翻译成c++代码。我一直在努力弄清楚如何翻译这一部分。
Function ThetaG_JD(jd : double) : double;
var
UT,TU,GMST : double;
begin
**UT := Frac(jd + 0.5);**
jd := jd - UT;
TU := (jd - 2451545.0)/36525;
GMST := 24110.54841 + TU * (8640184.812866 + TU * (0.093104 - TU * 6.2E-6));
**GMST := Modulus(GMST + 86400.0*1.00273790934*UT,86400.0);**
ThetaG_JD := twopi * GMST/86400.0;
end; {Function ThetaG_JD}
我对我加粗的两行尤其有困难。如何将其转换为c++?非常感谢。
在c++中等效的函数是:
fmod
得到浮点模
modf
将浮点数分解为分数和整数部分(相当于Frac
)。
如果你想计算儒略历日, 格林威治平均恒星时间和本地平均恒星时间,也许下面的代码可以帮助你-写在PowerShell:
<#
.Synopsis
Astronomy calculations
.Description
Some helper functions to calculate:
- Julian Day,
- Greenwich Mean Sidereal time,
- Local Mean Sidereal Time.
#>
cls
# https://en.wikipedia.org/wiki/Julian_day#Julian_day_number_calculation
function Get-JulianDay
{
param ( [System.DateTime]$dt )
$year = $dt.Year
$month = $dt.Month
$day = $dt.Day
$hour = $dt.Hour
$minute = $dt.Minute
$second = $dt.Second
$a = [System.Math]::Floor((14 - $month) / 12)
$y = $year + 4800 - $a
$m = $month + 12 * $a - 3
$JDN = $day + [System.Math]::Floor((153 * $m + 2) / 5) + 365 * $y + [System.Math]::Floor($y / 4) - [System.Math]::Floor($y / 100) + [System.Math]::Floor($y / 400) - 32045
$JD = $JDN + ($hour - 12) / 24 + $minute / 1440 + $second / 86400
return ($JD)
}
# https://en.wikipedia.org/wiki/Sidereal_time#Definition
# http://aa.usno.navy.mil/faq/docs/GAST.php
function Get-GMST
{
param ( [double]$JD )
$D = $JD - 2451545.0
$GMST = 18.697374558 + 24.06570982441908 * $D
return ($GMST % 24)
}
function Get-LMST
{
param ( [double]$gmst, [double]$longitude )
return ( $gmst + $longitude / 15.0 )
}
# Test above functions
$current = (Get-Date).ToUniversalTime()
$jd = Get-JulianDay -dt $current
$gmst = Get-GMST -JD $jd
$longitude = 17.668487800
$lmst = Get-LMST -gmst $gmst -longitude $longitude
$lst = [timespan]::FromHours($lmst).ToString()
Write-Host "Local mean sidereal time: $lst"
相关文章:
- C++:试图通过组合和帕斯卡三角形来理解constexpr
- 如何在C++的帕斯卡三角形中打印曲棍球棒的元素?
- CUDA - 统一内存(至少是帕斯卡)
- 找到一个数字平方和是质数(帕斯卡或C++)的数字
- 有人知道一个模仿帕斯卡"range array"的类吗?
- 找到第1500行帕斯卡三角形中的每个数字
- 需要使用帕斯卡三角形 (x+y) 打印二项式系数
- 帕斯卡三角形程序 C++ 上的间距
- 为什么我在计算帕斯卡三角形元素时在递归 C 程序中出现堆栈溢出错误
- C++:如何生成帕斯卡三角形的'nth'线?
- 从C++打电话给斯卡拉帕克
- 帕斯卡三角形|李特码错误答案
- 帕斯卡三角形实现
- 帕斯卡的模数
- 以C++为中心帕斯卡三角形输出
- 帕斯卡的读密钥是否有等效项;在 C 还是C++?
- 我如何解释这个帕斯卡部分C++
- 为什么这个帕斯卡三角形程序不起作用?
- c++生成帕斯卡三角形,输出错误
- C++:帕斯卡三角形 - 奇怪的结果