C#:查询某年(1900-2100)某月的日历
using System;
using System.Collections.Generic;
public class Program
{
/********************主函数************************/
public static void Main()
{
/******************获取用户输入的年月**************/
while(true)
{
int year1,month1;
while(true)
{
Console.Write("请输入年份(1900-2100):");
year1=int.Parse(Console.ReadLine());
if(year1<1900||year1>2100)
{
Console.Write("年份输入错误,按回车键后重新输入");
Console.ReadLine();
Console.Clear();
}
else
{
Console.Write("请输入月份(1-12):");
month1=int.Parse(Console.ReadLine());
if(month1<1||month1>12)
{
Console.Write("月份输入错误,按回车键后重新输入");
Console.ReadLine();
Console.Clear();
}
else
{
break;
}
}
}
/*********************************************************/
/********************获取月份数据,包括前面的空格*********/
List<string> dats=new List<string>();//定义一个集合,用来存放月份里面的天数和要打印的空白数
Console.WriteLine(GetCrossDaysFrom1900(year1,month1));//输出从1900年1月1号到输入年份的天数
int dayofWeek=GetCrossDaysFrom1900(year1,month1)%7+1;
int space=dayofWeek-1;
for(int a=1;a<=space;a++)
{
dats.Add(" ");
}
for(int b=1;b<=GetDaysOfMonth(year1,month1);b++)
{
dats.Add(b.ToString());
}
/*********************************************************/
/********************输出某年某月的日历*******************/
Console.WriteLine("***********************************************");
Console.Write("一\t二\t三\t四\t五\t六\t日");
for(int d=0;d<dats.Count;d++)
{
if(d%7==0)//没打印7个数据就换行
{
Console.WriteLine();
}
Console.Write(dats[d]+"\t");
}
Console.WriteLine();
Console.WriteLine("*************************************************");
Console.Write("按回车键继续");
Console.ReadLine();
Console.Clear();
}
}
/********************从1900年1月1号到输入年份的天数*********/
static int GetCrossDaysFrom1900(int year2, int month2)
{
int days=0;
for(int i=1900;i<year2;i++)//计算从1900年一月一号到输入的这年一月一号一共有多少天
{
if(i%4==0&&i%100!=0||i%400==0)
{
days+=366;
}
else
{
days+=365;
}
}
for(int j=1;j<month2;j++)
{
if(j==2) //判断二月有多少天
{
if(year2%4==0&&year2%100!=0||year2%400==0)//判断是不是瑞年
{
days+=29;
}
else
{
days+=28;
}
}
else if(j<=7&&j%2!=0||j>7&&j%2==0)//计算大月有多少天
{
days+=31;
}
else
{
days+=30;
}
}
return days;
}
/****************哪年哪月有多少天*******************/
static int GetDaysOfMonth(int year3, int month3)
{
int dates;
if(month3==2)
{
if(year3%4==0&&year3%100!=0||year3%400==0)
{
dates=29;
}
else
{
dates=28;
}
}
else if(month3<=7&&month3%2!=0||month3>7&&month3%2==0)
{
dates=31;
}
else
{
dates=30;
}
return dates;
}
}
C#:查询某年(1900-2100)某月的日历的更多相关文章
- 关于SQL查询某年数据 和DATEPART 函数的使用
数据库查询某年数据(sql server)select *from 表名 where YEAR(存时间的字段名) =某年select *from News where YEAR(addDate) =2 ...
- 用sql查询当天,一周,一个月的数据
用sql查询当天,一周,一个月的数据 数据查询,不管在网站还是在系统,都很常见,下文是介绍最常见的以日期查询的语句 select * from ShopOrder where datediff(w ...
- RobotFramework:查询条件为最近一个月的数据(2019-07-09 00:00:00.000 到 2019-08-07 23:59:59.999)
自动化测试中遇到,默认查询条件为最近一个月,所以起始时间就应该为(2019-07-09 00:00:00.000 到 2019-08-07 23:59:59.999) test ${current_ ...
- Mysql 查询天、周,月,季度、年的数据
Mysql 查询天.周,月,季度.年的数据 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 ...
- sql server查询某年某月有多少天
sql语句如下: ),) date from (),,)+'-01' day) t1, ( ) t2 ),) ),,)+'%' 查询结果如下: 2017年2月共有28天,查询出28条记录.
- 报表统计——java实现查询某年某月每天数据,没数据补0
一般图表绘制例如echarts等,返回数据格式都大同小异.重点是利用sql或者java实现数据格式的转型,接下来是关键部分: 1.前提:提供的工具方法——获取某月有多少天 //通过年份和月份确定该月的 ...
- 报表统计——java实现查询某年12个月数据,没数据补0
一般图表绘制例如echarts等,返回数据格式都大同小异.重点是利用sql或者java实现数据格式的转型,接下来是关键部分: 1.mapper层sql语句,返回统计好的月份与对应月份的数据. < ...
- sql查询当天,一周,一个月数据的语句
--查询当天: select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的: select * from info w ...
- 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确 * 1.1900年1月1号开始 * 2.星期 : 直接用总天数对7求余数 31 28 59 / 7 = 5 * 3.以\t来个开
public class Demo4 { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene ...
随机推荐
- thinkphp 配置项总结
'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}&g ...
- hadoop-1.x的运行实例
我的环境是hadoop-0.20.2,eclipse:SDK-3.3.2, 源数据为: Apr 23 11:49:54 hostapd: wlan0: STA 14:7d:c5:9e:fb:84 Ap ...
- JS属性操作
一.属性读操作:元素.属性名 ( 获取.找到属性值 ) 属性写操作:元素.属性名 = 新的值 ( 替换.修改属性值 ) 二.没有属性名的,也可进行读.写操作: 读操作:元素.innerHTML ...
- redis使用Lua脚本
最近在看<Redis入门指南>第二版,感觉收获挺大,推荐大家有时间看一看.其中有一章讲Lua脚本,感觉挺实用,把总结整理一下. Redis在2.6中推出了脚本功能,允许开发者使用Lua语言 ...
- [笔记]A Practical Guide to Support Vector Classication
<A Practical Guide to Support Vector Classication>是一篇libSVM使用入门教程以及一些实用技巧. 1. Basic Kernels: ( ...
- TimSort算法分析
Timsort是一种混合稳定的排序算法,采用归并排序混合插入排序的设计,在多种真实数据上表现良好. 它基于一个简单的事实,实际中大部分数据都是部分有序(升序或降序)的. 它于2002年由Tim Pet ...
- Quartz_理解2
一.核心概念 Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可. 1.Job 表示一个工作,要执行的具体内容.此接口中只有一个方法 void exec ...
- Cassandra issue - "The clustering keys ordering is wrong for @EmbeddedId"
在Java连接Cassandra的情况下, 当使用组合主键时, 默认第一个是Partition Key, 后续的均为Clustering Key. 如果有多个Clustering Key, 在Java ...
- R系列:分词、去停用词、画词云(词云形状可自定义)
附注:不要问我为什么写这么快,是16年写的. R的优点:免费.界面友好(个人认为没有matlab友好,matlab在我心中就是统计软件中极简主义的代表).小(压缩包就几十M,MATLAB.R2009b ...
- linux oracle 10g 安装时 .bash_profile的设置
export ORACLE_BASE=/home/oracle/oracle10g export ORACLE_SID=ccpbs export ORACLE_HOME=$ORACLE_BASE/pr ...