+++ /dev/null
-using System;\r
-using com.andoutomo.kybernetes.control;\r
-\r
-namespace com.andoutomo.kybernetes.data\r
-{\r
- internal class DateComponent\r
- {\r
- private DateTime innerDate;\r
-\r
- internal DateComponent(int year, int month, int day)\r
- {\r
- innerDate = new DateTime(year, month, day);\r
- }\r
- internal DateComponent(int month, int day)\r
- {\r
- innerDate = new DateTime(DateTime.Today.Year, month, day);\r
- }\r
- /// <summary>\r
- /// スペース区切りで日付と時刻を分け、日付のみさらにスプリッタで分ける。\r
- /// SQLite向けコンストラクタ\r
- /// </summary>\r
- /// <param name="dateStr"></param>\r
- /// <param name="separater"></param>\r
- internal DateComponent(string dateStr,char separater)\r
- {\r
- string[] wkData1 = dateStr.Split(' ');\r
- string[] wkData2 = wkData1[0].Split(separater);\r
- innerDate = new DateTime(int.Parse(wkData2[0]), int.Parse(wkData2[1]), int.Parse(wkData2[2]));\r
- }\r
- /// <summary>\r
- /// yyyyMMdd方式か、MMdd方式で表記された文字列から日付コンポーネントを作成する\r
- /// </summary>\r
- /// <param name="dateStr"></param>\r
- internal DateComponent(string dateStr)\r
- {\r
- try\r
- {\r
- if (dateStr.Length == 8)\r
- {\r
- string yearStr = dateStr.Substring(0, 4);\r
- string monthStr = dateStr.Substring(4, 2);\r
- string dayStr = dateStr.Substring(6, 2);\r
- innerDate = new DateTime(int.Parse(yearStr), int.Parse(monthStr), int.Parse(dayStr));\r
- }\r
- else if (dateStr.Length == 4)\r
- {\r
- string monthStr = dateStr.Substring(0, 2);\r
- string dayStr = dateStr.Substring(2, 2);\r
- innerDate = new DateTime(DateTime.Today.Year, int.Parse(monthStr), int.Parse(dayStr));\r
-\r
- }\r
- else\r
- {\r
- throw new KybernetesApplicationException("日付への変換ができません:" + dateStr);\r
- }\r
- }\r
- catch (Exception e)\r
- {\r
- throw new KybernetesApplicationException(e);\r
- }\r
- }\r
-\r
- internal DateComponent(DateTime dateTime)\r
- {\r
- innerDate = dateTime;\r
- }\r
-\r
- internal void addDate(int dateToAdd)\r
- {\r
- innerDate = innerDate.AddDays(dateToAdd);\r
- }\r
-\r
- /// <summary>\r
- /// 日付文字列を出力(デフォルト)\r
- /// </summary>\r
- /// <returns></returns>\r
- internal string getDateString()\r
- {\r
- return innerDate.ToString("MM/dd");\r
- }\r
- internal string getDateString(string format)\r
- {\r
- return innerDate.ToString(format);\r
- }\r
- /// <summary>\r
- /// 曜日を出力します。\r
- /// </summary>\r
- /// <returns></returns>\r
- internal string getDowStr()\r
- {\r
- switch (innerDate.DayOfWeek){\r
- case DayOfWeek.Monday:\r
- return "月";\r
- case DayOfWeek.Tuesday:\r
- return "火";\r
- case DayOfWeek.Wednesday:\r
- return "水";\r
- case DayOfWeek.Thursday:\r
- return "木";\r
- case DayOfWeek.Friday:\r
- return "金";\r
- case DayOfWeek.Saturday:\r
- return "土";\r
- case DayOfWeek.Sunday:\r
- return "日";\r
-\r
- default:\r
- return "";\r
- }\r
- }\r
- /// <summary>\r
- /// 日数差を計算します。\r
- /// </summary>\r
- /// <param name="target"></param>\r
- /// <returns></returns>\r
- internal int calculateDateDiff(DateComponent target)\r
- {\r
- TimeSpan thisDateLange = innerDate.Subtract(target.innerDate);\r
- return thisDateLange.Days;\r
- }\r
- }\r
-}\r