본문 바로가기

Dev::DotNet/C#

Assembly 의 Version 을 날짜로 바꾸기


AssemblyInfo.cs 의 



[assemblyAssemblyVersion("1.0.0.0")] 을 [assembly: AssemblyVersion("1.0.*")] 로 변경하면


"1.0.4598.17304" 형식으로 자동으로 버전이 증가하게 되고  


System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() 를 통해서 


버전값을 가져올 수 있다.


Version 값의 증가는 대충봐도 


중간 4자리 ( 4598 ) 은 하루에 하나씩 증가하고 

마지막 5자리 ( 17304 ) 는 하루를 기준으로 증가하게 된다.


시간에 따라서 증가는 값이기 때문에 역으로 시간으로 바꿀는 방법을 생각해보았다.


    string[] ver =  System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() .Split('.');


          int DefMiddleCap = Convert.ToInt32(ver[2]) - 4400;


          int tSecond = (Convert.ToInt32(ver[3]) * 2);


          int hou = (int)(tSecond / 3600);

          int Min = (int)((tSecond - (hou * 3600)) / 60);

          int sec = (int)(tSecond - ((hou * 3600) + (Min * 60)));


          sResult = Convert.ToDateTime("2012-01-18").AddDays(DefMiddleCap).ToString("yyyy-MM-dd") + " " +

                          hou.ToString("00") + ":" + Min.ToString("00") + ":" + sec.ToString("00");


몇번 더하고 나누고 하다보면 나온다.


중간 4자리 일자는 4400 / 2012-01-18 을 기준으로  계산을 하였다.



실행해보면 


"2012-08-03 09:36:48" 이렇게 일자와 시간이 나오게 된다.



하지만 좀 더 쉽게하는 방법으로는 그냥 Compile Time 을 가져오면 된다.....ㅡㅡ;;;;







'Dev::DotNet > C#' 카테고리의 다른 글

Windows Version 구분  (0) 2012.08.10
System.Environment.CurrentDirectory 의 경로  (0) 2012.08.04
네트워크 폴더 접속  (0) 2012.08.02
실수를 정수로 형변환 할때  (0) 2012.07.31
다중 실행 방지를 위한 Mutex  (0) 2012.07.23