- PR -

日数を元に処理をしたい。

投稿者投稿内容
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-06-14 12:12
皆様お世話になっております。
さて、早速ですが質問をさせていただきます。

今現在、社内勤怠システムに着手しております。そのシステム内に有休に関することがあります。そして、有休に関する計算があるんですがどうしてもわからないことがあります。

例:2007/04/01入社
     ↓
  2007/10/01に有休10日付与
     ↓
  2009/10/01に有休10日消滅
----------------------------------

システム内で入社日を2007/04/01と設定。
     ↓
●2007/10/01になった時の処理などの機能はC#に存在するのでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-14 12:29
引用:

オウドーさんの書き込み (2007-06-14 12:12) より:

2007/10/01になった時の処理などの機能はC#に存在するのでしょうか。


(文章どおりに受け止めて) それを用意 (判断) するのがプログラマのお仕事です。 "2007/10/01" というのはあくまで例で半年後に有給を付与しなくてはならないというのを実装したいのですよね? クラス ライブラリ群はオウドーさん専用の魔法の箱ではありませんから、このタイミングもオウドーさんのやりたい処理も自分で実装する必要があります。

ただし、そういった判断を支援するクラス (構造体) は存在します。たとえば、TimeSpan 構造体はご存知でしょうか? 経過日数を知ることができます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-06-14 12:38
引用:

じゃんぬねっとさんの書き込み (2007-06-14 12:29) より:

(文章どおりに受け止めて) それを用意 (判断) するのがプログラマのお仕事です。 "2007/10/01" というのはあくまで例で半年後に有給を付与しなくてはならないというのを実装したいのですよね? クラス ライブラリ群はオウドーさん専用の魔法の箱ではありませんから、このタイミングもオウドーさんのやりたい処理も自分で実装する必要があります。

ただし、そういった判断を支援するクラス (構造体) は存在します。たとえば、TimeSpan 構造体はご存知でしょうか? 経過日数を知ることができます。





早速のご返答ありがとうございます。

>>"2007/10/01" というのはあくまで例で半年後に有給を付与しなくてはならないというのを実装したいのですよね?

まったくその通りです。

今、私が希望している通りのクラスはありませんので自分で作成してください。
作成に関して、TimeSpan構造体が支援してくれますってことですか。

TimeSpan構造体ですか。残念ながらわかりません。少しTimeSpanについて調べてきますので判り次第もう一度質問させていただこうと思います。
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-06-14 15:18
private void button1_Click(object sender, EventArgs e)
{
DateTime dt,dtnow;
dt = DateTime.Parse(mt.Text);
dt = dt.AddMonths(6);
dtnow = DateTime.Now;
if (dt < dtnow)
{
MessageBox.Show("成功");
}
else
{
MessageBox.Show("失敗");
}


}
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-06-14 15:19
private void button1_Click(object sender, EventArgs e)
{
DateTime dt,dtnow;
dt = DateTime.Parse(mt.Text);
dt = dt.AddMonths(6);
dtnow = DateTime.Now;
if (dt < dtnow)
{
MessageBox.Show("成功");
}
else
{
MessageBox.Show("失敗");
}


}

上記コードでいけました。お騒がせしました。ありがとうございました。
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-07-04 18:56
皆様こんばんは。再びオウドーです。
またまた、有休に関してですが以前ここで公開させていただきましたコードでは
駄目だと気づきました。6ヵ月経過時点での取得は以前のコードでも大丈夫ですが
1年6ヵ月目の有休取得の処理が出来ません。
理由は、6ヵ月取得の処理も同時に行ってしまうからです。
有休処理とはどのような処理がいいのかが全く検討つきません。よろしくお願いします。

※有休に関しては法定どおりです。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-07-04 19:11
C#にはif文という条件分岐させる構文があります。
1年6ヵ月経過している時は「6ヵ月取得の処理」を行わないように分岐しましょう。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2007-07-04 20:40
NAL-6295です。

最初の年の6ヶ月と、そこからの1年を分けて考えるのではなく、毎年決まった有給が発生する月を社員毎に設定しておけば、楽かもしれません。
思いつきですが。

スキルアップ/キャリアアップ(JOB@IT)