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

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

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

You are not logged in.

Announcement

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


#1 2022-11-19 21:57:06

ssr
Member

時間計算

時間計算についてです。

終了時間フィールドから経過時間フィールドを引いて、開始時間を算出したいです。
例)終了時間 10:00、 経過時間 5.5時間とした場合、開始時間4:30を求めたいです。

終了時間フィールドは、時刻。
経過時間フィールドは、数値です。
開始時間フィールドの計算式を教えていただきたいです。

Offline

#2 2022-11-19 22:22:55

Shin
Member

Re: 時間計算

終了時間 -  経過時間 * 3600

Offline

#3 2022-11-19 22:23:42

ssr
Member

Re: 時間計算

ありがとうございます!試してみます。

Offline

#4 2022-11-19 22:49:07

himadanee
Guest

Re: 時間計算

Time()という関数もあります。
Time(5.5;0;0)が5.5時間です。

#5 2022-11-19 22:53:48

ssr
Member

Re: 時間計算

>>

himadanee wrote:

Time()という関数もあります。
Time(5.5;0;0)が5.5時間です。

Time()という関数についても詳しく教えていただきたいです!
終了時間フィールドは、時刻。
経過時間フィールドは、数値。
開始時間フィールドに、どのような計算式を入れて、時刻にしたら良いのでしょうか。

Offline

#6 2022-11-19 23:16:25

himadanee
Guest

Re: 時間計算

時刻から時間を引けばいいので
終了時間 -  Time(経過時間;0;0)

#7 2022-11-20 08:11:22

ssr
Member

Re: 時間計算

開始時刻が昨日になると、マイナス表示になります。
どうしたら良いのでしょうか。

Offline

#8 2022-11-20 08:27:04

Shin
Member

Re: 時間計算

終了時刻を、タイムスタンプにしておけばいいです。

Offline

#9 2022-11-20 12:59:12

ssr
Member

Re: 時間計算

すみません、まったくの素人で。
タイムスタンプとは何でしょうか。

Offline

#10 2022-11-20 13:36:14

ssr
Member

Re: 時間計算

終了時間をタイムスタンプにすると日付が1.1.1(月)になります。

Offline

#11 2022-11-20 16:45:19

himadanee
Guest

Re: 時間計算

FileMakerでは時間と時刻の区別ができないので、日をまたぐ計算なら日付も入力しないとだめってことです。

日付を無視したければ、適当に大きい24時間の倍数を足して、24時間で割った余りを使います。
Time ( 0 ; 0 ; Mod(終了時間 -  Time(経過時間-24000;0;0) ; Time ( 24 ; 0 ; 0 ) ) )
(時間を数値演算すると秒数になるのでTime()で時間に変換する)

#12 2022-11-20 19:41:59

ssr
Member

Re: 時間計算

ご回答ありがとうございます。
試して見ます。

Offline

#13 2022-11-20 20:43:40

Sarah
Guest

Re: 時間計算

もう一つ質問なんですが、終了時間のフィールドをタイムスタンプにするときって、単純に終了時間のフィールドを時刻からタイムスタンプにすれば良いだけではないのですか?
すでに、終了時間が入力されているレコードが存在していて、時刻フィールドからタイムスタンプに変えた時に、時刻フィールドでは、15:00と表示されていたのに、1.1.1(月)15:00と表示されてしまいました。
どうすれば、正しい日付が入力されるのでしょうか。
ちなみに、別に日付を入力している日付フィールドが存在しています。

#14 2022-11-20 22:12:31

Shin
Member

Re: 時間計算

Timestamp
を使うといいでしょう。
単に形式を変えると、日付が0扱いになるので、その様なデータになるのでしょうね

Last edited by Shin (2022-11-20 22:13:08)

Offline

#15 2022-11-21 09:46:04

himadanee
Guest

Re: 時間計算

補足になりますが

>別に日付を入力している日付フィールドが存在
それなら、終了時間はそのまま時間フィールドで、計算に日付フィールドも使えばいいのです。
Timestanpからであれば何時間引いても結果はTimestanpなので、そこから時刻部分だけ取り出す。

GetAsTime ( Timestamp ( 日付 ; 終了時刻 ) - Time ( 経過時間 ; 0 ; 0 ) )

FMの時間タイプでは時刻と時間の区別がないので、時刻のつもりでも時間を加減すると、マイナスや24:0:0以上の値にもなります。
Timestampの時間部分はあくまでも時刻なので、24時間範囲外の値は関数の入力などとしては受け付けますが結果には出てきません。

#16 2022-11-21 14:35:04

ssr
Member

Re: 時間計算

himadaneeさんの最初の余りを使う方法とタイムスタンプを使う方法、どちらでもうまく計算結果を出すことができました。
補足も大変参考になりました。ありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 575.04 KiB (Peak: 591.95 KiB) ]