MOD ざざん
// 配布サイト blueleaf様 http://hp.vector.co.jp/authors/VA034288/
#include "longint.hsp"
time_init
button "test",*do_time
stop
*do_time
title get_strd_time()
stop
#deffunc time_init
julius hoge_day
pass_from_2000=hoge_day
mes ""+pass_from_2000
keika_time=Longint(0)
dim gtime, 4, 3
gtime(0,0) = gettime(4)
gtime(1,0) = gettime(5)
gtime(2,0) = gettime(6)
gtime(3,0) = gettime(7)
return
#deffunc set_keika_time var p_time
keika_time=Longint(p_time)
return
#defcfunc get_strd_time
gtime(0,1)=gettime(4)-gtime(0,0)
gtime(1,1)=gettime(5)-gtime(1,0)
gtime(2,1)=gettime(6)-gtime(2,0)
gtime(3,1)=gettime(7)-gtime(3,0)
julius piyo_day
this_from_2000=piyo_day-pass_from_2000
day_hour=LongInt(this_from_2000)
day_hour*=(24*3600)
passed=LongInt(0)
passed =keika_time+day_hour+ LongInt((gtime(0, 1) * 3600)) + LongInt((gtime(1, 1) * 60)) + LongInt((gtime(2, 1)))
if passed < 0 : passed += 24 * 60 * 60
ps_h=0:ps_m=0:ps_s=0:ps_tmp=0
m_break passed, ps_h,ps_m,ps_s,ps_tmp
return ""+ps_h+":"+ps_m+":"+ps_s
#defcfunc get_sum_day int p_year
y=p_year-2000
day_sum=0
if y<0: return -1
repeat y
d=2000+cnt
if Isleapyear(d){
day_sum+=366
}else{
day_sum+=365
}
loop
return day_sum
;1年365日 閏年366日
// 配布サイト さくら様 http://hspnext.com/module/library.htm
#deffunc julius var prm1,int prm2,int prm3,int prm4
#define global ctype round(%1) double(strf("%%0.0f", %1))
;*******************************************************************************
; ユリウス日を取得 (julius)
;
; 戻り値 : statは常に0, Value=ユリウス日
;
; ・書式 julius Value,nYear,nMonth,nDay
; ・引数 Value (var) : 数値型変数
; nYear (int) : 1994〜2020 gettime(0)
; nMonth (int) : 1〜12 gettime(1)
; nDay (int) : 1〜31 gettime(3)
; ・タイプ モジュール命令
;
;-- (NOTE) ---------------------------------------------------------------------
;
; (使用例)
; julius n,2005,3,20 : mes n
;*******************************************************************************
y = prm2 : if (y<=0)|(y>3000) : y =gettime(0)
m = prm3 : if (m<=0)|(m>12) : m =gettime(1)
d = prm4 : if (d<=0)|(d>31) : d =gettime(3)
;準ユリウス日を計算
MJD = (365.25*y)+(y/400)-(y/100)+(30.59*(m-2))+d-678912
;ユリウス日を計算
JD=round(MJD+2400002.5) : prm1=int(JD)
return 0
// 配布サイト HSP開発wiki http://hspwiki.hinekure.net/小ワザ/ストップウォッチ.html
#deffunc m_break var param, var hour, var min, var sec, var milliSec // ミリ秒を時・分・秒・ミリ秒に分解する内部関数
hour = param / 3600
min = (param - hour * 3600) / 60
sec = (param - hour * 3600 - min * 60)
; milliSec = param - hour * 3600000 - min * 60000 - sec * 1000
return
|