C# 获得两日期之间所有月份(包括跨年)
前台:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
开始<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
结束<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
后台:
protected void Button1_Click(object sender, EventArgs e)
{
string Begain_time = TextBox1.Text;
string End_time = TextBox2.Text;
string year_b = Begain_time.Substring(, );
string year_e = End_time.Substring(, );
string Begain_month = Begain_time.Substring(, );
string End_month = End_time.Substring(, );
int year_count=Convert.ToInt32(year_e)-Convert.ToInt32(year_b); if (year_count==)
{
int count = Convert.ToInt32(End_month) - Convert.ToInt32(Begain_month);
for (int i = ; i <= count; i++)
{
string month = (Convert.ToInt32(Begain_month) + i).ToString();
if (month.Length == )
{
month = "" + month;
}
DateTime datetime = DateTime.Now;
string[] time = datetime.ToString().Split(new char[] { '/' });
string date = year_b + "-" + month + "-" + time[];
string first = "";
string last = "";
if (Convert.ToInt32(month) == Convert.ToInt32(Begain_month))
{
first = Begain_time;
}
else
{
first = Convert.ToDateTime(date).AddDays( - Convert.ToDateTime(date).Day).ToString();
}
if (Convert.ToInt32(month) == Convert.ToInt32(End_month))
{
last = End_time;
}
else
{
last = Convert.ToDateTime(date).AddDays( - Convert.ToDateTime(date).Day).AddMonths().AddDays(-).ToString();
}
if (first.IndexOf(" ") > )
{
first = first.Remove(first.IndexOf(" "));
}
if (last.IndexOf(" ") > )
{
last = last.Remove(last.IndexOf(" "));
}
Response.Write(first + "至" + last + "");
}
}
else
{
int a = Convert.ToInt32(End_month);
int b = Convert.ToInt32(Begain_month);
int count = Convert.ToInt32(End_month)+ * year_count - Convert.ToInt32(Begain_month) ;
for (int i = ; i <= count; i++)
{
DateTime datetime = DateTime.Now;
string[] time = datetime.ToString().Split(new char[] { '/' });
string month = "";
string date = "";
string year = "";
int month_ = Convert.ToInt32(Begain_month) + i;
int year_add=;
if (month_>)
{
year_add = month_ / ;
}
year = (Convert.ToInt32(year_b) + year_add).ToString();
if (month_%==)
{
month = "";
if (year_add>)
{
year = (Convert.ToInt32(year) - ).ToString();
}
}
else
{
month = (month_ - * year_add).ToString();
}
if (month.Length == )
{
month = "" + month;
}
date = year + "-" + month + "-" + time[]; string first = "";
string last = "";
if (Convert.ToInt32(month) == Convert.ToInt32(Begain_month) && Convert.ToInt32(year) == Convert.ToInt32(year_b))
{
first = Begain_time;
}
else
{
first = Convert.ToDateTime(date).AddDays( - Convert.ToDateTime(date).Day).ToString();
}
if (Convert.ToInt32(month) == Convert.ToInt32(End_month) && Convert.ToInt32(year) == Convert.ToInt32(year_e))
{
last = End_time;
}
else
{
last = Convert.ToDateTime(date).AddDays( - Convert.ToDateTime(date).Day).AddMonths().AddDays(-).ToString();
}
if (first.IndexOf(" ") > )
{
first = first.Remove(first.IndexOf(" "));
}
if (last.IndexOf(" ") > )
{
last = last.Remove(last.IndexOf(" "));
}
Response.Write(first+"-"+last+"\t");
}
}
}
注:输入日期月和日必需是两位,如2015-08-05或2015/08/05
C# 获得两日期之间所有月份(包括跨年)的更多相关文章
- java:通过Calendar类正确计算两日期之间的间隔
在开发Android应用时偶然需要用到一个提示用户已用天数的功能,从实现上来看无非就是持久化存入用户第一次使用应用的时间firstTime(通过SharedPreferences .xml.sqlit ...
- js计算日期之间的月份差
<script type="text/javascript"> getMonthBetween("2015-05-01","2016-05 ...
- C++练习 | 计算两日期之间天数差
#include<iostream> #include<string> #include<cstring> using namespace std; class D ...
- Python2 获取两日期之间的每一天
import datetime def getEveryDay(begin_date,end_date): date_list = [] begin_date = datetime.datetime. ...
- MYSQL 两日期之间的工作日(除去周六日,不考虑节假日)
select (floor(days/7)*5+days%7 -case when 6 between wd and wd+days%7-1 then 1 else 0 end - ...
- php 获取开始日期与结束日期之间所有月份
function showMonthRange($start, $end) { $end = date('Ym', strtotime($end)); // 转换为月 $range = []; $i ...
- JS 格式化时间(获取两个日期之间的每一天、每一月、每半小时、每一秒)
时间戳转换为时间 // 时间戳转换为时间 function timestampToTime(timestamp, isMs = true) { const date = new Date(timest ...
- mysql计算两个日期之间的天数
MYSQL自带函数计算给定的两个日期的间隔天数 有两个途径可获得 1.利用TO_DAYS函数 select to_days(now()) - to_days('20120512') 2 ...
- MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数
MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() ...
随机推荐
- NET基础课-- 类型基础(NET之美)
1.类型:值类型 引用类型. 分类依据:类型在内存的分配方式.值类型在堆栈,引用类型在托管堆. 名词:栈--所有变量都会被分配在栈上,只不过值类型直接含有数据,引用类型含有一个指向托管堆对象的地址. ...
- HTML基础知识笔记(二)
HTML <img>标签 语法: <img src="图片地址" alt="下载失败时的替换文本" title = "提示文本&qu ...
- 并行查询提高sql查询速度
新项目在使用Oracle开发中遇到测试库千万级数据导致数据慢,除去加索引和存储过程可以明显提速外,使用并行也可以提速 select /*+parallel(a,8)*/ a.* from a 加上/* ...
- uva 10935 throwing cards away <queue>
Given is an ordered deck of n cards numbered 1 to n with card 1 at the top and card n ...
- (转) 学习C++ -> 引用( References )
学习C++ -> 引用( References ) 一.引用的介绍 引用就是某一变量(目标)的一个别名, 相当于同一个人有了两个名字, 无论喊哪一个名字实际上都是指的同一个人. 同样, 在 ...
- Ubuntu14.10下解决chromium浏览器无法安装adobe flash的问题
本文参考了一下资源和博客,在此提出表示感谢: http://my.oschina.net/u/209016/blog/290067 http://ubuntuhandbook.org/index.ph ...
- phpMyAdmin批量修改Mysql数据表前缀的方法
多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分.而如何批量修改已有数据库的前缀名 呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介 ...
- 【solr基础教程之九】客户端
一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. ...
- Oracle中index by binary_integer的作用
如语句:type numbers is table of number index by binary_integer;其作用是,加了”index by binary_integer ”后,num ...
- python之5关于_name_和_main_的具体含义
关于_name_和_main_的具体含义如下: _name_:在模块中就是模块名,在类中就是类名 _main_:模块自身 "The namespace for a module is aut ...