Go语言练习---判断闰年以及根据现在的秒数求现在的年月日
package main import (
"fmt"
"math"
"time"
) /*
@闰年判断
·封装一个函数判断某一个年份是不是闰年(整4不整百,或者整四百)(例如:公元4年是如年,公元100、200、300不是闰年,公元400年是闰年)
·计算一年的精确天数
@根据当前时间纳秒求年月日
·time.Now().Unix()会返回距离1970年零时所逝去的时间秒数:1234567890
·据此求出今天的年月日(一年有60*24*365秒,整除得年;对一年的秒数求余,看看余数中有多少完整的60*24*30就有多少个月;)
·不许借助外部包,尤其是time包!
*/ func IsLeapYear(year int) bool {
if (year%4 == 0 && year%100 != 0) || (year%400 == 0) ||(year%1000==0){
return true
}
return false
} var OrdinaryYearMonthDays = [12]int{31,28,31,30,31,30,31,31,30,31,30,32}
var LeapYearMonthDays = [12]int{31,29,31,30,31,30,31,31,30,31,30,32} func GetDate(elapsedSeconds int)(year,month,day int) { //var year,month,day int for i := 1900; i <= 2000; i++ {
if IsLeapYear(i) {
fmt.Println(i, "是闰年")
}
} //一年的精确天数
daysPerYear := (365*400 + (24*3 + 25)) / 400.0
secondsPerDay := float64(24 * 3600)
secondsPerYear := secondsPerDay * daysPerYear //计算今年是哪一年
//elapsedSeconds := int(time.Now().Unix())
elapsedYears := int(float64(elapsedSeconds) / secondsPerYear)
year = 1970 + elapsedYears
fmt.Println(year) //计算当前是几月
//今年逝去的秒数:1970年后逝去的总秒数-今年以前的48个整年所包含的秒数
thisYearSeconds := float64(elapsedSeconds) - float64(elapsedYears)*secondsPerYear
//今年过去了多少天
thisYearDays := int(math.Ceil(thisYearSeconds / secondsPerDay))
fmt.Println(thisYearDays) var thisYearMonthDays [12]int
if IsLeapYear(year){
thisYearMonthDays = LeapYearMonthDays
}else {
thisYearMonthDays = OrdinaryYearMonthDays
} var tempDays = 0
for i, monthDays:=range thisYearMonthDays {
pastMonthDays := tempDays
tempDays += monthDays
fmt.Println(i,tempDays)
if tempDays >= thisYearDays{
month =i+1
//今年过去的天数-过去11个整月的天数
day = thisYearDays - pastMonthDays
break
}
}
fmt.Println("month=", month)
fmt.Println("day=", day)
return
} func main() {
//year, month, day := GetDate(int(time.Now().Unix()))
//fmt.Printf("当前是%d年%d月%d日", year,month,day)
pastSeconds := int(time.Date(2019, 11, 18, 22, 57, 1, 0, time.Local).Unix())
year, month, day := GetDate(pastSeconds)
fmt.Printf("当前是%d年%d月%d日\n", year,month,day)
fmt.Println(pastSeconds,int(time.Now().Unix()))
}
Go语言练习---判断闰年以及根据现在的秒数求现在的年月日的更多相关文章
- C 语言实例 - 判断闰年
用户输入年份,判断该年份是否为闰年. #include <stdio.h> int main() { int year; printf("输入年份: "); scanf ...
- C语言初学 判断闰年的问题
#include<stdio.h> main( ) { int year , leap; scanf("%d",&year); i ...
- 【C语言】判断某一正整数是否为完数
什么是完数? 如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”). 例如,6的因子为1.2.3,而 6=1+2+3,因此6是“完数”. 程序框图:m 问题分析 根据完数的定义,解决本题的 ...
- 判断闰年C语言版
#include<stdio.h> int isLeap(int year) { // 必须先判断是平年的情况 后判断闰年的情况 == && year%!=) || yea ...
- c#判断闰年
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- php判断闰年
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- java练习题:解一元二次方程、判断闰年、判断标准身材、三个数取最大值
1.解一元二次方程 注:求根公式为(-b+根号德尔塔)/2a,(-b-根号德尔塔)/2a Scanner sc=new Scanner(System.in); System.out.println(& ...
- 判断闰年的方法以及如何获得单链表的倒数第K个元素
今天很悲催,心中向往的公司,打电话过来面试,问到我两个问题,结果竟然都没有回答上,伤心了,记录下今天失败,希望以后不要被同样的问题给PASS. 问题1.如何判断是否为闰年 所谓闰年那就是:四年一闰,百 ...
- c语言 如何判断是不是 可显字符
c语言 如何判断是不是 可显字符int isprint(int c)若可显示返回1,否则0:要包含头文件ctype.h
随机推荐
- Spring Boot的自动配置原理及启动流程源码分析
概述 Spring Boot 应用目前应该是 Java 中用得最多的框架了吧.其中 Spring Boot 最具特点之一就是自动配置,基于Spring Boot 的自动配置,我们可以很快集成某个模块, ...
- JavaScript数组详解-全网最全
定义数组的方式 定义数组的方式有多种,分别如下 let array=[] (字面量) let array=new Array() let array=new Array([length]) lengt ...
- 【Nacos】Springboot整合nacos配置中心(一)
一.本地Nacos安装环境: Win7 ,JDK8 ,maven3.5 1.下载安装包 2.启动nacos服务,bin文件下下面startup.cmd 3.访问 http://localhost:88 ...
- POJ1486模拟或者匈牙利变种
题意: 有n个矩形,每个矩形上的某个位置上都有一个点,但是由于矩形是透明的,当一些矩形重叠在一起的时候就很可能分不清哪个点是那个矩形的,给你n个矩形的坐标,还有n个点的坐标,然后让你找出所 ...
- <JVM中篇:字节码与类的加载篇>02-字节码指令集
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- 前端用网址生成二维码(jquery)
1.加载jquery.qrcode.min.js 2.html部分: 3.js部分:url为生成二维码的网址 附: jquery.qrcode.min.js下载 链接:https://pan.baid ...
- Redis6.x学习笔记(二)持久化之RDB
前言 最近学习Redis6.x,特做笔记以备忘,与大家共学.课程是从私塾在线下载的,他们把架构师课程都放出来了,大家可以去下载学习,不要钱的,地址是http://t.hk.uy/eK7,课程很不错,值 ...
- React中diff算法的理解
React中diff算法的理解 diff算法用来计算出Virtual DOM中改变的部分,然后针对该部分进行DOM操作,而不用重新渲染整个页面,渲染整个DOM结构的过程中开销是很大的,需要浏览器对DO ...
- mysql知识点归纳-执行计划篇
愿历尽千帆,归来仍是少年 缘由: 优化sql,顾此记录一下,以便温习之用. 前置: sql执行过程:客户端 -> 连接器 -> 分析器 (或查询缓存 - > end) -> 优 ...
- Shell 脚本重启项目
每次发打包好项目后都需要手动重启项目,写个Shell脚本一键重启项目 Shell 脚本 #!/bin/bash while getopts "n:p:" arg do case $ ...