WEEKコードの作成について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 WEEKコードの作成について

3 件の投稿を閲覧中 - 1 ~ 3 件(全 3 件)
  • 著者
    投稿
  • #4775
    1261s-tateyama
    一般参加者

    客先の仕様で発送用のラベルにWEEKコードなるものを印字して発送しておりますが
    現在手入力している状態なので、MZでこのWEEKコードを自動作成したく
    コンポーネントリファレンスを色々調べてみましたがよく解りません
    ご教授お願い致します。

    WEEKコードとは5桁からなる日付を特定する数字です
    本日(2017/5/1)の場合 17182となります
    数字の意味は
    17182の17は、2017年の下2桁です 
    17182の18は、1月1日の週が01から始まり本日は18週目です
    17182の 2は、日曜日からカウントするので本日月曜日なので2となります
    参考に手入力するためのカレンダーを添付いたしました。
    お手数をおかけいたしますがよろしくお願いいたします。

    #4777
    MZPlatformユーザー会
    サイト管理者

    はじめに,大変申し訳ございませんが,「こういうことをしたいのだけど,アルゴリズム=計算手順を教えてください」という質問(一般的ではない処理の作成)にはお答えすることが難しいですので,次回よりお願い致します.例えば「このような計算手順を考えたが,どのコンポーネントまたはメソッドを使えばよいか」「このような処理を作成したがエラーが発生してしまう」と言った質問にはお答えします.少ない人数で対応しておりますので,ご協力をお願い致します.
    ご質問の大体の処理はカレンダーコンポーネントを使用することにより実行可能です.
    まず,年数の下二桁は,カレンダコンポーネントのメソッド「書式指定によるカレンダー文字列表現の取得」に書式「yy」を指定して実行しますと取得できます.
    また,ある曜日の日番号はメソッド「getDayOfWeek」を用いることにより取得できます.
    問題の週番号ですが,次のような計算になろうかと思います(間違いがあるかもしれません)
     (週番号を知りたい日付+1/1の日番号-1日) – 同年1月1日)/7 +1
    この計算手順に従って,カレンダーコンポーネントを用いて日数の計算を行います.上の計算手順での7での割り算は小数点以下切り捨てを想定しておりますが,「除算」コンポーネントでは四捨五入となってしまいますため,「整数(BigInteger)格納変数」に一旦日数を設定し,メソッド「divideThenReplace」を用いて割りますと切り捨てになります.
    ご参考のため,当方で作成したアプリケーションを添付いたします.

    添付ファイル:
    #4779
    MZPlatformユーザー会
    サイト管理者

    補足させていただきます.検討の結果,次回バージョンアップ時に,カレンダーコンポーネントに年内の週番号を取得するメソッド等を追加することといたしました.次回リリースは秋を予定しております.

3 件の投稿を閲覧中 - 1 ~ 3 件(全 3 件)
  • このトピックに返信するには、ログインしてください。