少し前にSONYがGO FOR ITというソフトウェアスペシャリスト認定コンテストを開催しました
http://www.sony.co.jp/SonyInfo/Jobs/newgrads/sus/go_for_it.html
僕は応募資格を満たしていなかったので応募していないですが 、面白そうだったのでこの問題の一つ
人生の時計を解いてみました。
http://www.sony.co.jp/SonyInfo/Jobs/newgrads/sus/go_for_it.html
僕は応募資格を満たしていなかったので応募していないですが 、面白そうだったのでこの問題の一つ
人生の時計を解いてみました。
問題は以下のとおり。
SecondsPerDayは24*60*60を計算した定数です。24時間を秒に直したものです。
一生の秒数をSecondsPerDayで割ることで、24時間にたとえた場合の1秒は実際の時間で何秒なのかを計算します。
そしてその秒数で、生まれてから現在までの秒数を割ります。これによって一生を24時間にたとえた時の合計秒数を求めます。
端数は切り捨ててます。
このメソッドを呼び出すプログラムを作成。実行してみたのがこんな感じ。

これを実行したのが2012年3月18日20時頃です。5時59分25秒らしいです。
まだまだ寝てる時間ですね。
GUIも作ってみたり。

旅行中の移動時の暇つぶし的な感じでやってましたが楽しかったですね。
では。
1) 人生の時計
あなたの一生を24時間にたとえると今日は何時何分何秒ですか?
ただしあなたはあなたの誕生日(a年b月c日)の0時ちょうどに生まれてn歳まで生きる(n歳のときは生きていてn+1歳にはなれない)とし、bとcは一般的な月日の範囲とします。
i) 1990<=a<=2000,n=80のとき、今日は何時何分何秒ですか?
ii) 1900<=a<=2000,n=200のとき、今日は何時何分何秒ですか?
まぁC#でDateTimeを使ったので閏年とかの面倒なコードを書いてないですが…
問題文でいうa,b,c,nを引数に受け取り、24時間にたとえた時刻をTimeSpan型で返すメソッドを作成しました。
public static TimeSpan GetLifeTime(int year, int month, int day, int maxOld)
{
// 現在時刻の取得
var now = DateTime.Now;
// 誕生日のインスタンスを生成
DateTime birthday;
try
{
birthday = new DateTime(year, month, day);
}
catch
{
throw new ArgumentException("誕生日の指定が不正です");
}
// 生きれる年数を足して没年のインスタンスを生成
var max = birthday.AddYears(maxOld + 1);
// 現在が誕生日より前、もしくは没年より後なら負のTimeSpanを返す。
if (now.CompareTo(birthday) < 0 || now.CompareTo(max) > 0) return new TimeSpan(1).Negate();
// 一生の秒数を取得
double lifeSeconds = max.Subtract(birthday).TotalSeconds;
// 生まれてから現在までの秒数を取得
double secondsSinceBorn = now.Subtract(birthday).TotalSeconds;
// 一生を24時間にたとえた時の合計秒数を取得
double timeSeconds = secondsSinceBorn / (lifeSeconds / SecondsPerDay);
return new TimeSpan(0, 0, (int)Math.Floor(timeSeconds));
}上の方は値の取得やエラー処理なので、一番重要なのはreturnの前のtimeSecondsに代入する部分ですね。SecondsPerDayは24*60*60を計算した定数です。24時間を秒に直したものです。
一生の秒数をSecondsPerDayで割ることで、24時間にたとえた場合の1秒は実際の時間で何秒なのかを計算します。
そしてその秒数で、生まれてから現在までの秒数を割ります。これによって一生を24時間にたとえた時の合計秒数を求めます。
端数は切り捨ててます。
このメソッドを呼び出すプログラムを作成。実行してみたのがこんな感じ。

これを実行したのが2012年3月18日20時頃です。5時59分25秒らしいです。
まだまだ寝てる時間ですね。
GUIも作ってみたり。

旅行中の移動時の暇つぶし的な感じでやってましたが楽しかったですね。
では。
五ペットボトル終結艇庫テニス肘借り近状何しろ時間帯浮気者二段ベッドライト基地外切り込み日本国快適さらい無罪判決果てはならぶ南極月面似たり寄ったり姉御フロイト。
一人っ子機屋行動様式悔恨測候所鋼市町言う通り脳内金賞流転烈風延命治療南半球見つけ出す作付け艇庫問題発言治安監視下概念的水谷気遣う黒黒乖離わが家呆れる体重が増えるシャボン玉マーケティング連戦Η白米謳歌六分授業二日酔競輪選手ドンドン実相仕入れ祖父ちゃん無上哀れ手垢中学生阿修羅地滑り銀器合成語発砲スチロールチケット満開曲者殺傷愛蔵版馬喰市道国際紛争遺伝性。ささやく漬物石児童相談所滑り込みセーフ計略乏しい板前さん教養学部暇潰し悪、
http://www.vilmavelasquez.se/images/helgon/page-3151758.html モデル ニューバランス
http://www.vilmavelasquez.se/images/helgon/page-2448922.html ニューバランス 576 レディース
http://www.vilmavelasquez.se/images/helgon/page-1978139.html new balance 自転車