C#:优惠券代码
static Random random = new Random();
List<string> generatedVouchers = new List<string>();
char[] keys = "ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".ToCharArray(); private static string GenerateVoucher(char[] keys, int lengthOfVoucher)
{
return Enumerable
.Range(, lengthOfVoucher) // for(i.. )
.Select(k => keys[random.Next(, keys.Length - )]) // generate a new random char
.Aggregate("", (e, c) => e + c); // join into a string
} protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int vouchersToGenerate = ;
int lengthOfVoucher = ; List<string> generatedVouchers = new List<string>();
char[] keys = "".ToCharArray(); //while (generatedVouchers.Count < vouchersToGenerate)
//{
// var voucher = GenerateVoucher(keys, lengthOfVoucher);
// if (!generatedVouchers.Contains(voucher))
// {
// generatedVouchers.Add(voucher);
// Response.Write(string.Format("<br>[#{0}] {1}", generatedVouchers.Count, voucher));
// }
//} string vCode = GenerateVoucher(keys, lengthOfVoucher);
Response.Write("<br>" + string.Format("{0}-{1}-{2}",
vCode.Substring(, ),
vCode.Substring(, ),
vCode.Substring(, ))); //Response.Write("<br>" + string.Format("{0}", vCode.Substring(0, 4)));
//Response.Write("<br>" + string.Format("{0}", vCode.Substring(4, 4)));
//Response.Write("<br>" + string.Format("{0}", vCode.Substring(8, 4))); Response.Write("<br>-------------------------------------------------------------------<br>"); //**********************************************************************************************
Random random = new Random();
DateTime timeValue = DateTime.MinValue;
System.Text.Encoding big5 = System.Text.Encoding.GetEncoding("big5");
System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("gb2312"); // Create 10 codes just to see the random generation.
for (int i = ; i < ; ++i)
{
int rand = random.Next();
timeValue = timeValue.AddMinutes(rand);
byte[] buffer = System.BitConverter.GetBytes(timeValue.Ticks);
string voucherCode = ToBase32String(buffer); //BitConverter.ToString(buffer);
Response.Write("<br>" + string.Format("{0}-{1}-{2}",
voucherCode.Substring(, ),
voucherCode.Substring(, ),
voucherCode.Substring(, )));
}
Response.Write("<br>-------------------------------------------------------------------<br>"); //********************************************************************************************** //System.Guid g = System.Guid.NewGuid();
//Random rn = new Random();
//string gs = g.ToString();
//int randomInt = rn.Next(5, 10 + 1);
//Response.Write("<br>" + gs.Substring(gs.Length - randomInt - 1, randomInt));
}
} public static string ToBase32String(byte[] input)
{
if (input == null || input.Length == )
{
throw new ArgumentNullException("input");
} int charCount = (int)Math.Ceiling(input.Length / 5d) * ;
char[] returnArray = new char[charCount]; byte nextChar = , bitsRemaining = ;
int arrayIndex = ; foreach (byte b in input)
{
nextChar = (byte)(nextChar | (b >> ( - bitsRemaining)));
returnArray[arrayIndex++] = ValueToChar(nextChar); if (bitsRemaining < )
{
nextChar = (byte)((b >> ( - bitsRemaining)) & );
returnArray[arrayIndex++] = ValueToChar(nextChar);
bitsRemaining += ;
} bitsRemaining -= ;
nextChar = (byte)((b << bitsRemaining) & );
} //if we didn't end with a full char
if (arrayIndex != charCount)
{
returnArray[arrayIndex++] = ValueToChar(nextChar);
while (arrayIndex != charCount) returnArray[arrayIndex++] = '='; //padding
} return new string(returnArray);
}
private static int CharToValue(char c)
{
int value = (int)c; //65-90 == uppercase letters
if (value < && value > )
{
return value - ;
}
//50-55 == numbers 2-7
if (value < && value > )
{
return value - ;
}
//97-122 == lowercase letters
if (value < && value > )
{
return value - ;
} throw new ArgumentException("Character is not a Base32 character.", "c");
}
private static char ValueToChar(byte b)
{
if (b < )
{
return (char)(b + );
} if (b < )
{
return (char)(b + );
} throw new ArgumentException("Byte is not a value Base32 value.", "b");
}
C#:优惠券代码的更多相关文章
- O2O淘宝优惠券代码总结
一.数据集预处理 1.数据读入 import pandas as pd import numpy as np import datetime as date import datetime as dt ...
- 100个精选zencart扩展插件
100个精选zencart扩展插件 特别推荐 1. 数据库备份 2. 产品横向布局. 3. 邮件订阅Newsletter Subscribe. 4. google 翻译google_translate ...
- 《Django By Example》第九章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag 注:哈哈哈,第九章终于来啦 ...
- Exp9 Web安全基础
Exp9 Web安全基础 20154305 齐帅 一.实验要求 本实践的目标理解常用网络攻击技术的基本原理. Webgoat实践下相关实验: [目录] [第一部分 WebGoat 8.0] 1.Web ...
- 20155334 《网络攻防》 Exp9 Web安全基础
<网络攻防> Exp9 Web安全基础 一.实验后回答问题 SQL注入攻击原理,如何防御: 原理: 就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服 ...
- [转]nopCommerce 3.9 版本发行
本文转自:http://www.cnblogs.com/xoray007/p/nopCommerce-39-release.html NopCommerce中文信息地址:http://www.nopc ...
- nopCommerce 3.9 版本发行
NopCommerce中文信息地址:http://www.nopcn.com/nopcommerce39-blog-release-notes.html NopCommerce英文地址:http:// ...
- nopCommerce 4.10 发布了
我们的开发工作主要集中在将nopCommerce转移到.NET Core 2.1,性能和架构改进,进一步增强和修复错误. NopChommerce 中文社区:http://www.nopcn.com ...
- webgoat 7.1 实战指南
WSASP中文文档参考链接: http://www.owasp.org.cn/owasp-project/2017-owasp-top-10 OWASP Top 10 2017中文版V1.3http: ...
随机推荐
- 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...
- mysql登录不了及修改密码
安装mariadb,默认是无密码的,但一般是指要设置密码的.在设置密码时出现各种问题,可能还是不太明白其原理. 一下我尝试了两种方法,但都失败了.下面这两个是我尝试的方法: 一.网上最多的方法是 1. ...
- MySQL的左连接、右连接和全连接的实现
表student:+----+-----------+------+| id | name | age |+----+-----------+------+| 1 | Jim | 18 || 2 | ...
- Matlab代码优化--向量化
前段时间改写老师的一个计算纳米细颗粒物的C语言程序,不过运行的效率实在是太低了,工作站跑都很吃劲,晚上看了冈萨雷斯的数字图像处理意外发现了问题所在.在将C语言的程序改写成Matlab程序的时候我还是保 ...
- Ported my old SPH solver in Unity
Here is the link to the web player version, http://www-scf.usc.edu/~taian/pages/sph/builds/12212014/ ...
- CLR via C# 3rd - 07 - Constants and Fields
1. Constants A constant is a symbol that has a never-changing value. When defining a constant ...
- yii accessRules用法
访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类 ...
- 特殊字符转义&时间格式化&获取URL参数
/*特殊字符转义*/ function htmlspecialchars (str) { var str = str.toString().replace(/&/g, "&& ...
- Linux 指令。
从16年11月21号开始吧,加班变得特别频繁,基本上一周加5天,周六也会加,下班也很晚,一般都是10点9点,回家之后很疲惫,已经很久没有给自己充过电了,自己的学习计划和健身计划也打乱了,对工作的压力也 ...
- iOS AppStore提交错误收集
ERROR ITMS-90535: "Unexpected CFBundleExecutable Key. The bundle at 'Payload/创可贴.app/TencentOpe ...