ab.com コミュニティ
https://www.activebasic.com/forum/

日付・日付文字列6桁・日付値取得
https://www.activebasic.com/forum/viewtopic.php?t=2313
ページ 11

作成者:  まっ [ 2008年2月18日(月) 00:54 ]
記事の件名:  日付・日付文字列6桁・日付値取得

''''' DateString6Value 日付・日付文字列6桁・日付値取得
Function ZDTES6V(ZDTE as string) as long
Dim ZYAR as long , ZMON as long , ZDAY as long , ZDDC as long , ZURU as long , ZVAL as long
ZVAL=Val(ZDTE) : ZYAR=Int(ZVAL/10000) : ZVAL=ZVAL-(ZYAR*10000) : ZMON=Int(ZVAL/100) : ZDAY=ZVAL-(ZMON*100)
ZVAL=Int((ZYAR-1)/4) : ZDDC=ZVAL*1461 : ZVAL=ZYAR-(ZVAL*4) : ZDDC=ZDDC+((ZVAL-1)*365) : ZURU=0 : If ZVAL=4 then ZURU=1
If ZMON>1 then ZDDC=ZDDC+31 : If ZMON>2 then ZDDC=ZDDC+28+ZURU : If ZMON>3 then ZDDC=ZDDC+31 : If ZMON>4 then ZDDC=ZDDC+30 : If ZMON>5 then ZDDC=ZDDC+31 : If ZMON>6 then ZDDC=ZDDC+30 : If ZMON>7 then ZDDC=ZDDC+31 : If ZMON>8 then ZDDC=ZDDC+31 : If ZMON>9 then ZDDC=ZDDC+30 : If ZMON>10 then ZDDC=ZDDC+31 : If ZMON>11 then ZDDC=ZDDC+30
ZDTES6V=36891+ZDDC+ZDAY
End Function

戻値 ZDTES6V
だいたいのWindowsソフトで共通の日付値です。と思います。エクセルで検証しました。

引数 ZDTE
yymmdd の6桁の文字列で固定です。2000年以降の年しか考慮していません。
~Ptrの使い方がイマイチ勉強不足で string型 を使用してます。カンベンして。

西暦で
通常は年365日。4で割れる年は366日。100で割れる年は365日。400で割れる年は366日。。。だったと思う。

と思います。が多くてすいません。だいぶ前に作ったので多少のコメント違いはあるかもしれませんが、コードは現在進行形で使用中ですので間違いは無いと思います。と思います。

作成者:  konisi [ 2008年2月18日(月) 07:10 ]
記事の件名: 

codeタグとhideタグを組み合わせれば、きれいに表示できますよ。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/