tic()
とtoc()
の機能を使用して時間間隔を数秒で取得しました。 時間間隔がdt=3600.125
秒であるとします。 Juliaを使って "H:M:S.s"形式で印刷するにはどうすればいいですか?Juliaで "H:M:S.s"形式で3600.125秒を印刷する方法
答えて
あなたがあなた自身の関数を作ることができます。主な機能はdivrem
です。便利な関数呼び出しでは除数と剰余を得ることができます。
dt=3600.125
function hmss(dt)
(h,r) = divrem(dt,60*60)
(m,r) = divrem(r, 60)
#(s,r) = divrem(r, 60)
string(Int(h),":",Int(m),":",r)
end
hmss(dt)
hmss(3452.98)
dates section in the manualをご覧ください。
ない、これが最も効率的な方法であるが、これは、例えば動作するかどうかを確認します。
julia> Dates.format(DateTime("2017-10-01T01:02:03"), "H:M:S.s")
"1:2:3.0"
はい! JuliaのDateTime操作に強力な組み込み機能を使用することを強くお勧めします。 –
@ MichaelK.Borregaardあなたは私の答えを見て、おそらく "埋め込まれた施設"をうまく利用できますか?私の視点から見ると、まだJuliaでは少し複雑です。例えば、私は 'Dates.format(Dates.Nanosecond(1e8)、dateformat" S.s ")'が動作していると期待しています。 – Liso
このaswerは、3600 * 24秒未満の期間の問題を解決します。しかし、偽の日付が必要です。 –
日付形式に変換すると、this methodを使用できます。
julia> t1 = now()
2017-11-10T10:00:51.974
# Wait
julia> t2 = now()
2017-11-10T10:10:07.895
julia> x = Dates.canonicalize(Dates.CompoundPeriod(t2-t1))
9 minutes, 15 seconds, 921 milliseconds
julia> x.periods
3-element Array{Base.Dates.Period,1}:
9 minutes
15 seconds
921 milliseconds
julia> x.periods[2]
15 seconds
julia> x.periods[2].value
18
""" working properly only if 0<= sec <=86400 otherwise truncating """
function fmtsec(sec, fmt::Dates.DateFormat)
# nanos = Dates.Nanosecond(sec * 1e9) # we could get InexactError here!
nanos = Dates.Nanosecond(trunc(Int, sec * 1e9))
mytime = Dates.Time(nanos)
Dates.format(mytime, fmt)
end
fmt = dateformat"H:M:S.s" # Creating a DateFormat object is expensive. (see doc)
fmtsec(3600.125, fmt) # "1:0:0.125"
EDIT:ナノ秒を切り捨てず、我々はエラー得ることができる - >
julia> tic();sleep(1);old_fmtsec(toc(), dateformat"S.s")
elapsed time: 1.002896514 seconds
ERROR: InexactError()
Stacktrace:
[1] convert(::Type{Int64}, ::Float64) at ./float.jl:679
[2] fmtsec(::Float64, ::DateFormat{Symbol("S.s"),Tuple{Base.Dates.DatePart{'S'},Base.Dates.Delim{Char,1},Base.Dates.DatePart{'s'}}}) at ./REPL[47]:2
julia> tic();sleep(1);old_fmtsec(toc(), dateformat"S.s")
elapsed time: 1.002857122 seconds
"1.002"
tic
& toc
は推奨されません。 toc
は、内部的にtime_nsを使用するため、丸め誤差を発生させる可能性がありますが、ナノ秒は1e9で秒に変換されます。
- 1. C#でペルシア語形式のDateTimeを印刷する方法
- 2. 出力を16進形式で印刷する方法
- 3. 辞書データをPythonの表形式で印刷する方法
- 4. パスをDFS形式でグラフに印刷する方法は?
- 5. java(アンドロイド)でposix形式のローカルタイムゾーンを印刷する方法は?
- 6. YiiでPDF形式のドキュメントを印刷
- 7. Pythonでリストを印刷するときの印刷形式を制御する
- 8. XMLを印刷用のXPS形式に変換する方法
- 9. 印刷JSONデータ、HTML形式
- 10. ゼブラプリンタ - バーコードの印刷形式
- 11. クエリ結果を希望する形式で印刷する方法
- 12. 印刷形式でJavaスクリプトを使用してページの総計を印刷する方法
- 13. コマンドラインからjuliaでプロットを印刷
- 14. LINUX/Cで "dd mm yyyy hh mm sec"形式で印刷する方法
- 15. Cでマイクロ秒のシンボルを印刷する方法は?
- 16. このデータをajaxを使用してテーブル形式で印刷する方法
- 17. printfを使用して特定の形式で印刷する方法
- 18. このJSONから表形式でデータを印刷する方法
- 19. POSIXctの日付形式の印刷方法
- 20. 逆インデックス形式のluceneを印刷
- 21. アレイからテーブル形式でツリーを印刷する
- 22. Qtで.xlsx形式を印刷するには?
- 23. 特定の形式で特定の行を印刷する
- 24. HTMLテンプレートをPDF形式で印刷する - 角度2
- 25. BSTをディレクトリ一覧形式で印刷する
- 26. カラーテキストを.txt形式で印刷するには
- 27. Javafxで表形式の出力を印刷するには
- 28. "HH:mm:ss"の形式で秒を変換する方法
- 29. SQLAlchemyでSQLクエリの印刷を整形する方法は?
- 30. のpython3の印刷形式の出力
JuliaのDateTimeサポートがそれほど優れている場合、なぜそれをしますか? –
何がより重要か教えているからです。 ppl私の方法leanrネイティブdatetimeに移動することができますが、他の周りは難しいです – xiaodai
また、この場合のDateTimeの使用は煩雑です。いくつかの関数の呼び出し、書式設定、いくつかのトリックが必要です。例えば、リソの答えは、例えば以下の通りです。 xiaodaiのソリューションは短くてシンプルです。 –