'서버시간'에 해당하는 글 1건

시스템을 구현할때 프로그램에 현재시간을 표기해야 하는 경우가 발생하는데
이를 로컬PC시간이 아닌 서버시간을 표현할라치면 매법 타이머 돌때마다 서버시간 쿼리를 불러 처리하려다보면
당근 부하가 차리라는 생각이 든다.
이전 프로젝트 할때 사용했던 방법으로 최초 DB시간을 불러와 현재의 로컬PC시간과의 차이를 구해 처리하는 방법으로 나타냈다.
중간 중간 시간이 맞는지 1시간 마다 또는 필요할 때 마다 동기화 처리를 다시해서 표현하는 방법을 쓰면 유용하리라 본다.
/////////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace _CS__DB시간매칭
{
    public partial class Form1 : Form
    {
        private TimeSpan span;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // DB의 현재시간을 구해오는 쿼리
            DataTable dt = ServiceAgent.Request("SYS", "DF_CERTUSER", "1", "2", "3").Tables[0];   // 이건 각자 해보시길...^^

            if (dt.Rows.Count > 0)
            {
                DateTime sysDate = Convert.ToDateTime(dt.Rows[0][0].ToString());
                DateTime now = DateTime.Now;
                this.span = sysDate.Subtract(now);
            }
        }

        public DateTime GetSysDateTime
        {
            get
            {
                return DateTime.Now.Add(this.span);
            }
        }

        //서버일자와 현재일자에서 오차를 더하면 결국 서버일자이므로 서버일자 반환
        public string GetSysDate
        {
            get
            {
                return DateTime.Now.Add(this.span).ToString("yyyy-MM-dd");
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = GetSysDateTime.ToString();
        }
    }
}


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,