C# 8 函数 调用 常用类 时间 日期型
函数:能够独立完成某个功能的模块。
好处:1.结构更清析(编写、维护方便 )。2.代码重用。3.分工开发。
四要素:名称,输入(参数),输出(返回的类型),加工(函数体)
语法:
返回类型 函数名(参数类型 参数名,....)
{
函数体
}
函数调用:
[数据类型 变量名 = ]函数(参数);
函数调用时:调用的参数和函数定义的参数保持一对待:个数,类型,对应。
形参:形式参数。——函数定义的参数。
实参:实际参数。——函数调用的参数。
实参、形参传值的规律——传值,传址。
传值:参于整型、浮点、bool、char这几种内建类型在函数传递参数的时候,默认都是传值。
传值是把实参做一个副本(copy)传递给形参。
m = 30;
Add(m);
static void Add(int a)
{
a += 20;
}
传址:默认情况下,数组就是传地址,字符串也是传地址。
对于内建的整型、浮点、bool、char这些类型,如果要变成传址的话,需要在前面加ref
m = 30;
Add(ref m);
static void Add(ref int a)
{
a += 20;
}
对于传值和传址大家要记住 :
1.什么是传值,什么是传址?这个要分清楚。
2.默认情况下,哪些类型是传值?哪些类型是传址?
3.对于默认传值的类型,如何让他们变为传址?ref
以后为了防止因为传值,传址引起来的错误 ,建议大家采用返回值的形式,明确返回的数据
递归——仅做了解。
函数自己调自己。
static void Main(string[] args)
{
Test(0);
}
static void Test(int a)
{
//if条件的return很重要,没有的话就永远出不来了。
if(a >5)
{
return;
}
a++;
Console.WriteLine("正在做第"+a+"个梦");
Test(a);
Console.WriteLine("第"+a+"个梦醒了");
}
常用的类:
(一)数学类:Math
1.Math.Ceiling(小数/整数):返回大于当前小数的最小整数。——天花板数
2.Math.Floor(小数/整数):返回小于当前小数的最大整数。——地板数
Console.WriteLine(Math.Ceiling(3.14)); //4
Console.WriteLine(Math.Floor(3.14)); //3
Console.WriteLine(Math.Ceiling(3.0)); //3
3.Math.Pow(2,3)求指数。相当于2的3次方
4.Math.Sqrt(16)开平方。
5.四舍五入。
Math.Round(3.63); //4
Math.Round(3.14); //3
(二)日期时间:DateTime
构造:DateTime dt = new DateTime([1990,2,5[,3,44,21]]);
DateTime dt = new DateTime(); //?
DateTime dt = new DateTime(1990, 2, 5);//?
DateTime dt = new DateTime(1990, 2, 5, 3, 44, 25);//?
当前时间:
DateTime dt = DateTime.Now;
日期时间对象的数据:
Year,Month,Day,Hour,Minite,Second,MilliSecond
DayOfWeek——星期几。DayOfYear——一年中的第几天。
Date——取期日期部份。TimeOfDay——取期时间部份。
日期时间对象的函数:
AddYears(int num)
AddMonths(int num)
AddDays(int num)
AddHours(int num)
AddMinutes(int num)
AddSeconds(int num)
日期时间型数据可以直接相减,返回两个日期之间差的天数和时间。
ToString(格式字符串)函数:把日按照某种格式显示出来。
格式字符串:
yyyy——四位数字的年份
yy——两位数字的年份
MM——两位数字的月分,不足两位添0
M——1-2位数字的月份
dd——两位数字的天,不足两位添0
d——1-2位数字的天。
hh——
h——
mm——
m——
ss——
s——
ms——毫秒。
例如:
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy年MM月dd日hh时mm分ss秒"));
不止是日期时间型数据的ToString()函数中可以放格式化字符中。整数,小数的ToString()中也可以放格式化字符串。
小数和整数类型的格式化符号主要是有四个。
.——小数点
,——整数部份三位的分隔符
#——任意位数字,有几位显示几位
0——至少一位数字,不足则补0.
例:
#.00——必须保留两位小数。
(三)字符串
*Length:字符串的长度。
ToLower():全都转成小写
ToUpper():全都转成大写
TrimStart():
TrimEnd():
Trim():压两头的空格。
*StartsWidth("字符串"):(bool)是否以括中的字符串开头,是--返回true。
*EndsWidth("字符串"):(bool)是否以括号中的字符串结尾,是--返回true。
*Contains("字符串"):(bool)是否包括括号中的字符串。是--返回true。
*IndexOf("子串"):(int)返回子串在字符串中第一次出现的位置。
*LastIndexOf("子串"):(int)返回子串在字符串中最后一次出现的位置。
以上两函数,如果在字符串中找不到相应的子串,返回-1
*Substring(int start[,int length]):(string)截取子串。
Replace(string old,string new):(string)把字符串的old串换成new串
*Split('字符'):(string[])按照括号中的字符把字符串拆开成数组中的元素。
作业:
1.从键盘输入一个正确的身份证号,获取其生日。
2.从路径:C:\Users\Administrator\Desktop\1220\0104\aaa.txt中,获取文件名。(用两种法做)
3.用户从键盘上输入一个邮箱。验证是否正确。
例1:
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("您刚才调用程序时,传进来的是"+args[0]);
Console.Write("请输入三个数:");
int x = Convert.ToInt32(Console.ReadLine());
int y = Convert.ToInt32(Console.ReadLine());
int z = Convert.ToInt32(Console.ReadLine());
int zd = Max(x, y);
zd = Max(zd, z);
}
static int Max(int a,int b)
{
if(a>b)
{
return a;
}
else
{
return b;
}
}
}
例2:
class Class1
{
static void Main(string[] args)
{
int m = 30;
Console.WriteLine("Main函数第一次打印:" + m); //30
Add1( m);
Console.WriteLine("Main函数第二次打印:" + m); //30
Console.WriteLine("Main函数第三次打印:" + m); //30
Add2(ref m);
Console.WriteLine("Main函数第四次打印:" + m);//50
}
static void Add1( int a)
{
Console.WriteLine("Add1传值函数第一次打印:" + a); //30
a += 20;
Console.WriteLine("Add1传值函数第二次打印:" + a); //50
}
static void Add2(ref int a)
{
Console.WriteLine("Add2传址函数第一次打印:" + a); //30
a += 20;
Console.WriteLine("Add2传址函数第二次打印:" + a); //50
}
}
例3:
class Class3
{
static void Main(string[] args)
{
int m = 30;
int n = Add(m);
Console.WriteLine(m); //30
}
static int Add(int a)
{
a += 20;
return a;
}
}
例4:猴子吃桃
class Class5
{
static void Mai6n(string[] args)
{
int m = TaoZi(1); //求第一天的桃子数
Console.WriteLine(m);
}
/// <summary>
/// 求每天的桃子数
/// </summary>
/// <param name="a">第几天</param>
/// <returns>该天桃子数</returns>
static int TaoZi(int a)
{
if(a == 7)
{
return 1;
}
int n = (TaoZi(a + 1) + 1) * 2;
return n;
}
}
C# 8 函数 调用 常用类 时间 日期型的更多相关文章
- 深入理解Java常用类-----时间日期
除了String这个类在日常的项目中比较常用之外,有关时间和日期的操作也是经常遇到的,本篇就讲详细介绍下Java API中对时间和日期的支持.其实在Java 8之前时间日期的API并不是很好用,以至于 ...
- day15--Java常用类之日期相关类
Java常用类 3.日期相关类 3.1Date类 在标准Java类库中包含一个Date类,它的对象表示一个特定的瞬间,精确到毫秒.在网上商城下单时,在对报销单进行审核时,都需要获取当前的时间,通过Da ...
- MySQL中的数据类型 [数值型、字符串型、时间日期型]
MySQL中的数据类型 [数值型.字符串型.时间日期型] MySQL中各数据类型 1. 数值类型(整型) 类型 数据大小 类型 (无符号:unsigned) 数据大小 存储空间 tinyint -12 ...
- 常用API - 时间日期类
Date类 概述 java.util.Date类 表示特定的瞬间,精确到毫秒. 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期 ...
- Java基础——常用类之日期时间类
如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如 ...
- 常用类(日期时间格式转换,date,枚举)
1 常用类 1.1 日期时间类 计算机如何表示时间? 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms ...
- mysql 常用的时间日期函数小结
本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now() :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...
- MYSQL常用的时间日期函数
#时间日期函数 #获取当前日期XXXX-XX-XXSELECT CURRENT_DATE(); SELECT CURDATE();#效果与上一条相同 #获取当前日期与时间XXXX-XX-XX XX:X ...
- Object类.时间日期类.System类.Stringbuilder类.包装类
Object类 java.lang.Object类是java语言中的根类,即所有类的父类.它中描述的所有方法都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类, ...
随机推荐
- css3:border-radius圆角边框详解 (变圆 图片)
转:http://www.kuqin.com/shuoit/20141014/342620.html border-radius:50% 今天来聊聊这个border-radius属性,radius的英 ...
- 2、vector的实现
看侯捷老师的<STL源码剖析>有一段时间了,打算自己整理一下思路,试着实现一下.主要目的有两个:1.巩固自己对源码的理解,让自己更加深刻的体会其中各种机制的奥妙.别人的知识 ...
- 图的深度优先遍历的实现 c/c++ DFS
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h&g ...
- 关于MySQL性能的比较
需求:在传递一组职位编号的时候,需要统计该职位的 当天的投递情况 和 有历史记录以来总的投递量 解决方案一: 每次都进行一次数据库查询,遍历职位id,再根据职位id去查询相应时间内的投递量 /** * ...
- (2012年旧文)纪念史蒂夫乔布斯---IT界的普罗米修斯
谈苹果与乔布斯系列一 IT界的普罗米修斯 纪念PC界的先驱 史蒂夫乔布斯 2012-4-5 清明节,纪念IT时代的开创人—伟大的史蒂夫 乔布斯. 没有乔布斯,计算机还是属于一群科技人士的工具,没有漂 ...
- android 代码布局 记录
1.概述 android 中大部分ui 布局是用xml 进行的,但是用代码布局调整是不可避免的.自己比较喜欢写模版,有些时候子类再继承模版时,往往有一些ui上的调整,又懒得去重写一个xml,就偷懒用代 ...
- ArrayList的contains方法(转)
今天在用ArrayList类的caontains方法是遇到了问题,我写了一个存放User类的ArrayList 但在调用list.contains(user)时总是返回false. 去看了下Arra ...
- Mysql 利用multiline 实现多行匹配
<pre name="code" class="html">input { file { type => "zj_mysql&quo ...
- OC中如何把字典中的数据拼接成url字符串
在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么 ...
- js添加、删除Cookie
//cookie function addCookie(objName, objValue, objHours) { //添加cookie var str = objName + "=&qu ...