みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております
windows10 64bit/fm16 advanced 16.0.2.205(06-06-2017)
です
標題の件ですが
サーバー実行のスクリプトで
毎月28日くらいに(2月を考慮して)
来月のチェックリストを自動作成しようと考えております
チェックリストは日数分だけ、レコードがある作りです
スクリプトで作成するレコードの数は
get日付の月部分をくり抜いて、判断しようと思っていましたが
閏年が立ちはだかりました
閏年であれば、2月は28ではなく29レコードを新規作成せねばなりません
パッと思いついたのが
【年部分を4で割って、整数なら】とか、もっとシンプルに【年部分が閏年なら】
みたいなif文ですが、そんなものは調べても分かりませんでした。。
get日付から、閏年を判別する方法を教えて頂けますでしょうか
いつも質問ばかりで申し訳ございません。よろしくお願いします
Offline
日付を0にすると前月末日が取得できます。
Date ( 3 ; 0 ; 2017 )
で閏年ならば 2/29 が返ってきます。上記式(2017)は閏年ではないので 2/28 です。
Offline
日付を0にすると前月末日が取得できます。
Date ( 3 ; 0 ; 2017 )
で閏年ならば 2/29 が返ってきます。上記式(2017)は閏年ではないので 2/28 です。
MOZ様
お世話になっております。ありがとうございます
という事は
①毎月28日にサーバー実行スクリプトを走らせる
②get日付+月を2つ足して、再来月の月と年取得
③再来月の月と年を変数にして(ここでは$Aと$Bとして)、date($A; 0 ; $B )で、本当に調べたい来月の末日を取得
④この末日の数だけ、新規レコード作成
という考え方でしょうか?私の知識だとこうなります。。
Offline
閏年は、
Day ( Date ( 3 ; 0 ; year ) ) = 29
で簡単に求められます。
それよりも、日付、というフィールドを作っておき、自動入力で、 self + 1 にしておきます。日付以外のフィールドを空にして(または入力する前にあらかじめ、)レコードを複製していき、月が変われば停止という loop のスクリプトを作る、または、毎日1日ずつ複製するのが、もっと簡単でしょう。
Offline
閏年は、
Day ( Date ( 3 ; 0 ; year ) ) = 29
で簡単に求められます。
それよりも、日付、というフィールドを作っておき、自動入力で、 self + 1 にしておきます。日付以外のフィールドを空にして(または入力する前にあらかじめ、)レコードを複製していき、月が変われば停止という loop のスクリプトを作る、または、毎日1日ずつ複製するのが、もっと簡単でしょう。
Shin様
お世話になっております。ありがとうございます
self関数でしょうか?使った事がないので早速調べてみます
Day ( Date ( 3 ; 0 ; year ) ) = 29
↑
これは理解出来ました。こんな簡単に求められるのですね。。
何とかなりそうです。ありがとうございました!
Offline
解決していますが......
閏年関係なく翌月1ヶ月分のレコードを作成すればよいのでは?
翌月末日を取得して翌月1日〜末日まで Loop で新規レコードに日付をフィールド設定するのが簡単確実です。
複製も良いですがフィールドの消し忘れや UUID で主キー作っていたりすると面倒です。
Self + 1 はスタートをどうするか考える必要があります。
Offline
先行して作っておいて問題無いのでしたら、最終日付が翌々月になるように、レコードを足していけば良いのでは。それを、毎日チェックさせておけば良いですよ。自動ですし。
Offline
解決していますが......
閏年関係なく翌月1ヶ月分のレコードを作成すればよいのでは?翌月末日を取得して翌月1日〜末日まで Loop で新規レコードに日付をフィールド設定するのが簡単確実です。
複製も良いですがフィールドの消し忘れや UUID で主キー作っていたりすると面倒です。
Self + 1 はスタートをどうするか考える必要があります。
Moz様
お世話になっております。ありがとうございます
そうですよね。。翌月分をloopすれば良いのですよね。
毎回のクセなのですが、分かるなくなると、複雑(というか回り道と言うか)な方へ方へと
ロジックが進む傾向にあります
もっと引き出しを増やして、シンプルな解決方法が自分で浮かぶと良いのですが。。
ありがとうございました!
Offline
先行して作っておいて問題無いのでしたら、最終日付が翌々月になるように、レコードを足していけば良いのでは。それを、毎日チェックさせておけば良いですよ。自動ですし。
Shin様
お世話になっております。ありがとうございます。
そうですね。これでもスムーズに動きますね。
全く考えの外でした。。
一人で考えていると、解決方法なんか無いな。。と思うのですが
聞くとこれでもかとでてきて、毎回恥ずかしい限りです。。
今後も(絶対)お世話になると思います
ありがとうございました!
Offline
Pages: 1
[ Generated in 0.010 seconds, 10 queries executed - Memory usage: 585.47 KiB (Peak: 590.35 KiB) ]