반응형

//할증률 계산 Calculation Primium Rate

function fnCal_PR(vValue,vPR) {
	return vValue + (vValue * (vPR / 100));
}

 

※return 에서 vValue * (vPR / 100) 여기 부분만 사용하면 할인 금액으로도 사용 할 수 있습니다.

★return vValue * (vPR / 100);

 

할증률 반올림 추가 - 첫번째 정수 자리수 반올림

function fnCal_PR(vValue,vPR) {
	return Math.round((vValue + (vValue * (vPR / 100))) / 10) * 10;
}

 

할증률 반올림 추가 - 두번째 정수 자리수 반올림

function fnCal_PR(vValue,vPR) {
	return Math.round((vValue + (vValue * (vPR / 100))) / 100) * 100;
}

 

할증률 반올림 추가 - 세번째 정수 자리수 반올림

function fnCal_PR(vValue,vPR) {
	return Math.round((vValue + (vValue * (vPR / 100))) / 1000) * 1000;
}
반응형
"문자열".toLowerCase(); // 소문자로 변환
"문자열".toUpperCase(); // 대문자로 변환
반응형

2021년 1분기 안전운임 금액 엑셀로 정리 하였습니다.

 

국토교통부에서 한글로 만들어진 내용을 기반으로 엑셀 작업만 한 것 입니다

 

혹시 필요하신 분은 다운로드 받아 가세요~

 

안전운임_왕복 엑셀표.xlsx
0.29MB
안전운임_편도 엑셀표.xlsx
0.09MB

반응형
SELECT TO_DATE('20210408', 'YYYYMMDD')- TO_DATE('20210406', 'YYYYMMDD') FROM DUAL;



반응형
//왼쪽에 붙은 0 제거하기
function _setLeftZeroRemove(vValue) {
	//영하 온도 입력 시
	var isMinus = vValue.indexOf("-");

	var vVal = vValue.replace(/-/g,"");

	if (vVal.length > 1) {
		vVal = vVal.replace(/(^0+)/, "");        

		if (vVal.length == 0) {
			vVal = 0;
		}
	}

	//영하 마이너스 찍었는지 확인
	if (isMinus > -1) {
		if (vVal != 0) {
			vVal = "-" + vVal;
		}
	}

	return vVal;
}
반응형

2024. 05. 20

- 날짜의 간격을 음수로 받아야 되는 경우가 있어서 해당 부분 주석으로 설명 넣어두었음.

- Math.abs (절대값)을 제거하면 음수로 받을 수 있음.

//날짜 차이 , 간격 일수 함수 (yyyymmdd , yyyy-mm-dd)
function _fnCompareDay(vValue1, vValue2) {
	var rxDatePattern = /^(\d{4})(\d{1,2})(\d{1,2})$/; //Declare Regex    
	
	if (vValue1.length > 7 && vValue2.length > 7) {
	
		//- replaceAll
		var dtArray1 = vValue1.replace(/-/gi, "").match(rxDatePattern); //기준 날짜
		var dtArray2 = vValue2.replace(/-/gi, "").match(rxDatePattern); //비교 날짜
	
		//0 => 현재 날짜 / 1 => yyyy / 2 => mm / 3 => dd
		var vSDate = new Date(parseInt(dtArray1[1]), parseInt(dtArray1[2]) + 1, parseInt(dtArray1[3]));
		var vEDate = new Date(parseInt(dtArray2[1]), parseInt(dtArray2[2]) + 1, parseInt(dtArray2[3]));
	
    		//추가 : 만약 날짜 차이를 음수로 받고 싶다면 Math.abs를 제거
		var vGapDay = Math.abs(vEDate.getTime() - vSDate.getTime());
		vGapDay = Math.ceil(vGapDay / (1000 * 3600 * 24));
	
		return vGapDay;
	} else {
		return "N";
	}
}
반응형

ExcelPackage를 사용하여 Dataset로 Excel 만들기.

전체 셀의 옵션 선택도 가능하고 맨 위의 header 부분도 배경화면 및 폰트 적용 가능합니다.

 

using (ExcelPackage pck = new ExcelPackage())
{
	ExcelWorksheet workSheet = pck.Workbook.Worksheets.Add(ds.Tables["Table"].TableName);

	Color DeepBlueHexCode = ColorTranslator.FromHtml("#c6efce");

	//가로 길이
	workSheet.Column(1).Width = 30;
	workSheet.Column(2).Width = 13;
	workSheet.Column(3).Width = 20;
	workSheet.Column(4).Width = 20;
	workSheet.Column(5).Width = 15;
	workSheet.Column(6).Width = 15;
	workSheet.Column(7).Width = 125;
	workSheet.Column(8).Width = 8;

	//세로 정렬
	workSheet.Column(1).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(2).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(3).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(4).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(5).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(6).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(7).Style.VerticalAlignment = ExcelVerticalAlignment.Center;
	workSheet.Column(8).Style.VerticalAlignment = ExcelVerticalAlignment.Center;

	//가로 정렬
	workSheet.Column(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(3).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(4).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(5).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(6).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(7).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
	workSheet.Column(8).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

	//폰트 설정
	workSheet.Column(1).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(2).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(3).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(4).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(5).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(6).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(7).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));
	workSheet.Column(8).Style.Font.SetFromFont(new System.Drawing.Font("나눔고딕", 10));

	//Header 부분 스타일 적용
	workSheet.Cells["A1:H1"].Style.Font.Bold = true;
	workSheet.Cells["A1:H1"].Style.Fill.PatternType = ExcelFillStyle.Solid;
	workSheet.Cells["A1:H1"].Style.Fill.BackgroundColor.SetColor(DeepBlueHexCode);

	////테두리 border 적용
	var nBorderRowCount = ds.Tables["Table"].Rows.Count + 1;
	var nRowCount = ds.Tables["Table"].Rows.Count;

	string modelRange = "A1:H" + nBorderRowCount.ToString();

	workSheet.Cells[modelRange].Style.Border.Top.Style = ExcelBorderStyle.Thin;
	workSheet.Cells[modelRange].Style.Border.Left.Style = ExcelBorderStyle.Thin;
	workSheet.Cells[modelRange].Style.Border.Right.Style = ExcelBorderStyle.Thin;
	workSheet.Cells[modelRange].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;

	//세팅 완료된 데이터 뿌려주기
	workSheet.Cells["A1"].LoadFromDataTable(ds.Tables["Table"], true);

	//엑셀 파일 저장
	pck.SaveAs(new FileInfo(strRealPath));
}

 

궁굼하신건 댓글로 남겨주세요~

반응형
function _setLeftZeroRemove(vValue) {
	var vVal = vValue;

	if (vVal.length > 1) {
		vVal = vVal.replace(/(^0+)/, "");

		if (vVal.length == 0) {
			vVal = 0;
		}
	} 

	return vVal;
}

2자리수 이상 일 경우 앞에 0으로 시작하면 없애주는 로직

 

 

+ Recent posts