16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:YY to YYYY変換 function"
この発言は #00777 裏目小僧 さんのYY to YYYY変換 function に対するコメントです
プログラムは以下の方が多少良いようです。
function YYtoYYYY(xx,yyyy,past:integer):integer;
begin
if past <0 then past:=+100;
xx:=(xx+100-(yyyy%100)) MOD 100;
if xx>past then xx:=xx-100;
result:=yyyy+xx;
end;
【追加情報】
組込み用途では DOSのファイル形式もまだ使われるでしょうし、
組込み用途で RTCとかのハードウエアでは 2桁だけでなく8bit
や7bitのものとかもあるかもしれません。
こういう100以外のモジュラ処理の場合でも このソースの5個所
ある 100 の部分をそのモジュラー数で
8bit->256
7bit->128
6bit->64
5bit->32
とおき換えれば 良いでしょう。ただし
xx:=(xx+100-(yyyy%100)) MOD 100
のyyyyを (yyyy-なんとか)みたいにオフセットをかける必要がある
場合があるのでそれは工夫して下さい。
また、 RTCを相手にする場合は、最後に手入力された年を yyyyとして
RTCから読んだ年をxx pastに-1を渡せば良いでしょう。
Original document by 裏目小僧 氏 ID:(GGA03463)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|