private DateTime SetCheckTime(string time)
{
int hour = int.Parse(time.Substring(0, 2));
int minute = int.Parse(time.Substring(2, 2));
DateTime retv = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hour, minute, 0);
return retv;
}
time은 "1234", "1212" 같은 문자열 이다.
Substring 을 이용하여 시와 분을 분리하고 int.Parse를 이용하여 각각 hour, minute 변수에 데이터를 넣는다.
그리고 DateTime 형식의 변수에 저장한다.
FarPointSpread에서는 다음과 같은 구현된다.
FarPoint.Win.Spread.CellType.DateTimeCellType dateTimeCellType6 = new FarPoint.Win.Spread.CellType.DateTimeCellType();...
dateTimeCellType6.CalendarSurroundingDaysColor = System.Drawing.SystemColors.GrayText;
dateTimeCellType6.DateDefault = new System.DateTime(2012, 8, 30, 21, 58, 41, 0);
dateTimeCellType6.DateTimeFormat = FarPoint.Win.Spread.CellType.DateTimeFormat.UserDefined;
dateTimeCellType6.MaximumTime = System.TimeSpan.Parse("23:59:59.9999999");
dateTimeCellType6.TimeDefault = new System.DateTime(2012, 8, 30, 21, 58, 41, 0);
dateTimeCellType6.UserDefinedFormat = "HH:mm";
this.fpSpread1_Sheet1.Columns.Get(9).CellType = dateTimeCellType6;
CalendarSurroundingDaysColor, DateDefault 는 왜 포함되는지 잘 모르겠다;
나머지 코드는 차근차근보면 어떤 의미인지 알 듯하다.
이런식으로 처리해 놓고 해당 cell에 DateTime을 입력하면 "12:34", "12:12" 형식으로 출력된다.
Spread 상에 출력되어 있는 시간을 문자열로 받아들이기 위해 다음과 같이 처리했다.
data._checkTime = (((DateTime)_ActiveSheet.GetValue(i, COL_CHK_TIME)).Hour).ToString().PadLeft(2, '0') + (((DateTime)_ActiveSheet.GetValue(i, COL_CHK_TIME)).Minute).ToString().PadLeft(2, '0');
시간과 분을 나누어서 string으로 만들고 두 string을 붙인다.
각 string은 PadLeft 함수를 사용하여 "03", "05" 형식으로 만든다.
댓글 없음:
댓글 쓰기