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: ...
随机推荐
- Bzoj索引
1001 : http://ideone.com/4omPYJ1002 : http://ideone.com/BZr9KF1003 : http://ideone.com/48NJNh1004 : ...
- UVA 572 油田连通块-并查集解决
题意:8个方向如果能够连成一块就算是一个连通块,求一共有几个连通块. 分析:网上的题解一般都是dfs,但是今天发现并查集也可以解决,为了方便我自己理解大神的模板,便尝试解这道题目,没想到过了... # ...
- window.onload、DOMContentLoaded和$(document).ready()
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- Kafka Topic ISR不全,个别Spark task处理时间长
现象 Spark streaming读kafka数据做业务处理时,同一个stage的task,有个别task的运行时间比多数task时间都长,造成业务延迟增大. 查看业务对应的topic发现当topi ...
- K-Means 聚类算法原理分析与代码实现
前言 在前面的文章中,涉及到的机器学习算法均为监督学习算法. 所谓监督学习,就是有训练过程的学习.再确切点,就是有 "分类标签集" 的学习. 现在开始,将进入到非监督学习领域.从经 ...
- LoadRunner迭代与并发的理解
---恢复内容开始--- 四车道的马路,如果只有四辆车并排走过就是并发: 如果四辆车排成一纵队走过就是迭代: 如果有100辆车排成25行依次走过就是并发加迭代. 在以上说法中,只有并排的车是我们 ...
- 如何配置Windows 防火墙,允许SQL Server的远程连接
一.如何找到SQL Server正在侦听的TCP端口,可以按一下步骤: 1.打开 SQL Server 配置管理器中,从开始->所有程序-> Microsoft SQL Server 20 ...
- CSS应用心得
单纯Html配合CSS网页 下面用程序来实际总结一下 首先,在写程序的应该具有一个良好的编程习惯. 第一:排版,拥有一个良好的排版,有助于我们能够快速的理解以及阅读程序: 第二:注释,就如以下程序,作 ...
- kernel/vsprintf.c
/* * linux/kernel/vsprintf.c * * Copyright (C) 1991, 1992 Linus Torvalds */ /* vsprintf.c -- Lars ...
- springMvc3.0.5搭建全程 (转)
用了大半年的Spring MVC3.0,用着感觉不错.简单写一个搭建Spring MVC3.0的流程(以Spring3.0.5为列),数据库交互使用spring JDBC Template,附件有项目 ...