2012-01-02 4 views
-2

현재 날짜와 시간을 기준으로 6 자리 숫자를 생성 할 수 있습니까? 한 사람이 타임 스탬프를 사용하라고 말했습니다. 현재 시간 스탬프를 기준으로 6 자리 숫자를 생성하는 방법을 알려주십시오. 내가 나중에 5 초 전에 생성 된 번호를 확인할 수있는 그런 식으로 생성해야합니다. 숫자가 생성 된시기를 알아 내기 위해 논리를 뒤집으려면 어떤 논리를 사용해야하는지 알아야합니다. 샘플 코드로 도와주세요.5 초 후에 만료되는 6 자리 숫자를 생성하십시오.

DateTime.Now.ToString("yyyyMMddHHmmssffff")과 같이 현재 날짜를 입력하면 숫자를 생성하는 데 사용할 수있는 암호화 기술은 무엇입니까?

+0

[현재 날짜 및 시간을 기준으로 6 자리 난수 생성 방법] (http://stackoverflow.com/questions/8698013/how-to-generate-6-digit-random-number-based- on-current-date-time) – V4Vendetta

답변

2

이 작업을 수행 할 수 있습니다 :

public static int GetTimestamp() 
{ 
    // 10m ticks in a second, so 50m in 5 seconds 
    const int ticksIn5Seconds = 50000000; 
    return (int)((DateTime.Now.Ticks/ticksIn5Seconds) % 1000000); 
} 

이 5 초마다 변경 1 ~ 6 자리 숫자를 가져옵니다.

+0

ur 코드가 유망 해 보이지만 계산을 이해할 수 없습니다. 왜 DateTime.Now.Ticks를 50000000으로 나누고 나머지를 1000000으로 나누어야합니까?이 계산을 자세히 설명하면 어떨까요? ur 코드에 감사드립니다. –

+0

'DateTime.Now.Ticks'는 매초 10,000,000의 비율로 증가하는 매우 큰 숫자입니다. 50,000,000 (정수) 나누기는 5 초마다 1 씩 증가하는 숫자를 제공합니다. 마지막으로, '% 1000000'은 999,999를 초과하면이 결과를 0으로 감싸므로 6 자리 이상을 가질 수 없습니다. –

0
// Get currect tick count 
    string sTicks = DateTime.Now.Ticks.ToString(); 
    // get 5 least-significat digits 
    string sNum = sTicks.Substring(sTicks.Length - 5, 5); 

당신은 100,000 틱 후, 다시 같은 번호를받을 게요 다소 높은 확률가 있음을 고려해야 할 필요가있다.

밀리 초 단위로 10,000 개의 눈금이 있습니다.

+0

그래서 5 초 전에 생성 된 번호를 확인하는 방법은 ... 어떤 논리를 사용해야합니까 ... plzz 샘플 코드가 있습니다. –

+0

무엇을하려고합니까? .... 이해가 안됩니다 ... u plzz가 올바르게 설명 할 것입니다. –

관련 문제