初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-01-27 10:11:21

あると
Member

タイムスタンプの計算、経過日時

Win8、FM12

タイムスタンプ同士の加減はできるのでしょうか?
修正情報:タイムスタンプ(日付と時刻) - 作成情報:タイムスタンプ(日付と時刻)=経過日数、としたいと思っています。
単純に、タイムスタンプ同士のフィールドを引き算したのですが、大きな数字がでたので秒で計算結果でたのかと思い、86400(=60*60*24)で割ってみましたが見当違いのようでした。

作成情報から日付と時刻を分離させ、修正情報もどうように分けて、それらで計算させています。
修正日付-作成日付=経過日数、という具合に。

タイムスタンプで作ったフィールドの引き算は無理なのでしょうか?
引くことが出来るなら、足すことも出来るとは思っているのですが。

よろしくお願いします。

Offline

#2 2014-01-27 10:54:42

tim
Guest

Re: タイムスタンプの計算、経過日時

引き算で秒数になってますよ。
割った結果を数字でなく日付にしたとか?

足すのは無理です。1/1に2/2を足すというのは意味がない。足せるのは数字。(時刻も時間扱いなので、できるけど)

#3 2014-01-27 11:34:23

チポ
Member

Re: タイムスタンプの計算、経過日時

tim wrote:

引き算で秒数になってますよ。

なんですが、
この数値が0の場合、
0001/1/1 0:0:0
を返します。

なんか変・・?

Offline

#4 2014-01-27 13:06:58

tim
Guest

Re: タイムスタンプの計算、経過日時

それは、結果が数字でなくタイムスタンプの場合でしょう。日時の差は日時じゃないので、だめです。
日付の差が日付じゃないのと一緒です。
(時間は時刻と兼用になってるので、時刻の差は時刻にできる。起点が0だからですね。日付は1で、0月0日とかがないからだめ。)

#5 2014-01-27 14:33:22

あると
Member

Re: タイムスタンプの計算、経過日時

お返事いただきありがとうございます。

開始フィールド(テキスト)、作成情報:タイムスタンプ(日付と時刻)
終了フィールド(テキスト)、修正情報:タイムスタンプ(日付と時刻)
とします。

経過日数フィールド=(終了フィールド-開始フィールド)/86400
秒で結果がでるということで、86400(=60*60*24)で割り、何日であるかを出す。

考えとしては、これであっているのでしょうか?
経過日数フィールドは、テキスト?数字?タイプをどれにしたら良いですか?
一応、それぞれ合わせてみましたが、結果が合いませんでした。

本当は、日時で結果が欲しいのですが、難しそうなのでとりあえず日数だけでも出せないかと。
開始2014/01/10 12:01:00 終了2014/01/27 14:32:10 =00/00/17 02:31:10と出れば理想。
今は、17日とだけでも出したいです。


>足すのは無理です。
無理でしたか。
残念ですが、こちらは日付だけ扱えれば良いので大丈夫です。保証期間の管理を簡略化できるかと思っていましたが、今まで通り使うことにします。

Offline

#6 2014-01-27 14:59:39

tim
Guest

Re: タイムスタンプの計算、経過日時

変ですねえ?
Int ( ( 修正日時 - 作成日時 ) / 60 / 60 / 24 )
これで17日になってますけど。

>本当は、日時で結果が欲しい
日時(タイムスタンプ)というのはある瞬間(ある日付のある時刻)を表すものなんで、期間(日数+時間)を日時で表すのは不可能です。
>00/00/17 02:31:10と出れば理想。
0月という日付がないので、タイムスタンプを書式設定してもそういう風には出ません。
計算するうえでも、月数(月ごとに日数が不定)を秒数から出すのは不可能なので、年数月数の表示が必要なら
タイムスタンプの差でなく日付と時刻でそれぞれ計算します。

#7 2014-01-27 15:59:48

あると
Member

Re: タイムスタンプの計算、経過日時

>Int ( ( 修正日時 - 作成日時 ) / 60 / 60 / 24 )
>これで17日になってますけど。
なぜか、解が197になります。

>0月という日付がないので、タイムスタンプを書式設定してもそういう風には出ません。
なるほど、無いものは出来ないですね。
わかりました。

試作中のを、UPします。
余計な式も付属してますが。
https://www.filesend.to/filedn/infoinde … 4070eb6e52
2014年1月30日15時58分まで

Offline

#8 2014-01-27 19:55:32

wader
Member

Re: タイムスタンプの計算、経過日時

>開始フィールド(テキスト)、作成情報:タイムスタンプ(日付と時刻)
>終了フィールド(テキスト)、修正情報:タイムスタンプ(日付と時刻)
フィールドがタイムスタンプになってない。

Offline

#9 2014-01-28 08:57:49

あると
Member

Re: タイムスタンプの計算、経過日時

waderさん、ありがとうございます。

開始フィールド(タイムスタンプ)、作成情報:タイムスタンプ(日付と時刻)
終了フィールド(タイムスタンプ)、修正情報:タイムスタンプ(日付と時刻)
Int ( ( 修正日時 - 作成日時 ) / 60 / 60 / 24 )
結果、17日になりました。

timさん、waderさん、出来ました。
フィールドのタイプも、タイムスタンプにしないといけなかったのですね。テキストでも、表示がタイムスタンプ形式になっていたので、気が付きませんでした。
勉強になり、ありがとうございました。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 519.87 KiB (Peak: 524.77 KiB) ]