🏠 ホーム 🔧 自作ツール 📓 日常のブログ 🍜 飯のブログ 📚 勉強のブログ 🗂️ その他のブログ
👃 TTManager32's Code - NoseScape

てんともち / TTManager32 Public

functionManager.hsp 1,660 Bytes
#module
	#defcfunc TextFormat str p1
		tmp=p1
		split tmp,"=",tmp
		if length(tmp)!=2 : return "?"
	return tmp(1)
#global

#module
#defcfunc time2ut int _y,int _m,int d,int _h,int _mi,int _s
	y=_y
	m=_m-2
	if m<=0 : m+=12 : y--
	days=365*y + y/4 + y/400 - y/100 + 30*m+59*m/100 + d - 678912 - 40587
	//↑指定した日の修正ユリウス日をフリーゲルの公式から求め、
	//さらに1970年1月1日の修正ユリウス日である40587を引く。
	h=_h-Var_UnixTimeOffsetHours@	//指定した時から日本とUTCの時差(UnixTimeOffsetHours)を引く。
	mi=_mi-Var_UnixTimeOffsetMin@	//日本に関して言えば、分の修正(UnixTimeOffsetMin)はなし。
	s=_s+0	//閏秒を考慮しない場合。考慮する場合は↓のコメントアウトを外す。
	if isEnableLeapSec@{
		s=_s+37
	}
	return days*86400 + h*3600 + mi*60 + s

#deffunc ut2time var ry,var rm,var rd,var rh,var rmi,var rs,int _ut
	ut=_ut-0	//閏秒を考慮しない
	add_h=Var_UnixTimeOffsetHours@	//日本とUTCとの時差
	add_m=Var_UnixTimeOffsetMin@	//日本とUTCとの時差(分)
	ut+=add_h*3600+add_m*60
	days=ut/86400 : a=ut\86400
	rh=a/3600 : a\=3600
	rmi=a/60 : rs=a\60
	//
	n=(days+40587)+678881	//(days+40587)で修正ユリウス日に変換。以下、フリーゲルの公式で日付を求める。
	a=3+4*((4*(n+1)/146097+1)*3/4+n)
	b=(a\1461)/4*5+2
	ry=a/1461
	rm=b/153+3
	rd=(b\153)/5+1
	if rm>=13 : rm-=12 : ry++
	return

#global

#module
	#defcfunc Varidation str p1
		target=p1
		res=""
		sdim rule,10
		rule(0)="0","1","2","3"
		rule(4)="4","5","6","7"
		rule(8)="8","9"
		repeat strlen(target)
			tmp=strmid(target,cnt,1)
			repeat
				if rule(cnt)=tmp{
					res+=tmp
				}
				if length(rule)=cnt+1 : break
			loop
		loop
	return res
#global