using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace GDZZ.Application.Help
{
public static class Utils
{
//自定义进制(0、O没有加入,容易混淆;同时排除X,用X补位)
private static char[] r = new char[] { 'Q', 'W', 'E', '8', 'A', 'S', '2', 'D', 'Z', '9', 'C', '7', 'P', '5', 'I', 'K', '3', 'M', 'J', 'U', 'F', 'R', '4', 'V', 'Y', 'L', 'T', 'N', '6', 'B', 'G', 'H' };
//不能与自定义进制有重复
private static char b = 'X';
//进制长度
private static int binLen = r.Length;
//生成的邀请码长度
private static int length = 6;
static Random random = new Random();
///
///
///
///
///
public static bool ShowHelp(DateTime date)
{
bool isTheDay = false;
//判断日期是否是当天
DateTime time = DateTime.Now;//当天
DateTime time2 = new DateTime(time.Year, time.Month, time.Day);//当天的零时零分
DateTime time3 = time.AddDays(1);//后一天
DateTime time4 = new DateTime(time3.Year, time3.Month, time3.Day);//后一天的零时零分
if (date > time2 && date < time4)
{
isTheDay = true;
}
else
{
isTheDay = false;
}
return isTheDay;
}
///
/// 根据ID生成六位随机邀请码
///
/// 用户id
/// 返回6位邀请码
public static string Encode(long id)
{
char[] buf = new char[32];
int charPos = 32;
while ((id / binLen) > 0)
{
int ind = (int)(id % binLen);
buf[--charPos] = r[ind];
id /= binLen;
}
buf[--charPos] = r[(int)(id % binLen)];
String str = new String(buf, charPos, (32 - charPos));
//不够长度的自动随机补全
if (str.Length < length)
{
StringBuilder sb = new StringBuilder();
sb.Append(b);
Random rnd = new Random();
for (int i = 1; i < length - str.Length; i++)
{
sb.Append(r[rnd.Next(binLen)]);
}
str += sb.ToString();
}
return str;
}
public static long NextLong(long minValue, long maxValue)
{
byte[] buffer = new byte[8];
random.NextBytes(buffer);
long result = BitConverter.ToInt64(buffer, 0);
return (Math.Abs(result % (maxValue - minValue)) + minValue);
}
}
}