nyoj 219 An problem about date 日期计算 附加最优代码(基姆拉尔森公式)

第一次直接计算的   超时了。后来把天数存贮在数组中 也算过了 不知道这题为什么分类在动态规划里面

#include <stdio.h>
int main()
{
	int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31},year,mon,day;
	long long b[9605]={0},sum=0;
	for(int i=1600;i<9600;i++)
	{
		if(i%4==0&&i%100||i%400==0)
		sum+=366;
		else
		sum+=365;
		b[i]=sum;
	}
	while(scanf("%d %d %d",&year,&mon,&day)!=EOF)
	{
	    sum=b[year-1];
		if(year%4==0&&year%100||year%400==0)
		a[2]=29;
		else
		a[2]=28;
		for(int i=1;i<mon;i++)
		sum+=a[i];
		printf("%d\n",(sum+day+5)%7);
	}
	return 0;
}        

最优代码。。。我也是服了  神人哪里找的公式

#include<cstdio>
int main()
{
	int y,m,d;
	while(~scanf("%d%d%d",&y,&m,&d))
	{
		if(m<3) m+=12,--y;
		printf("%d\n",(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7); //蔡勒公式的变种
	}
}                      
时间: 2024-10-15 00:44:39

nyoj 219 An problem about date 日期计算 附加最优代码(基姆拉尔森公式)的相关文章

计算周几的程序(基姆拉尔森公式)

using System; namespace HELLO { class Program { int week; int y, m, d; static void Main(string[] args) { int y, m, d; Console.WriteLine("请输入年月日"); Console.WriteLine("现在请输入年份"); y = int.Parse(Console.ReadLine()); Console.WriteLine("

基姆拉尔森公式--计算日期周几

基姆拉尔森公式计算日期周几 #include <iostream> using namespace std; string week[] ={"Mon","tue","Wen","Thu","Fri","Sat","Sun"}; int main(){ int y,m,d; while(cin>>y>>m>>d){ if

万年历计算星期-基姆拉尔森公式

#include /* * 基姆拉尔森计算公式 * W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 */ int week(int y, int m, int d) { if (m < 3) { m += 12; y--; } int w = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7; return w; } int main() { printf("%d\n

Date()日期简单计算

/** * 判断是否为闰年 * @param year * @return */ public boolean isLeap ( int year ) { if ( (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) ) return true; else return false; } /** * 判断某年某月总天数 * @param year * @param month * @return */ public int get

iOS学习笔记37-时间和日期计算

一.时间和日期计算 我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开发中与时间相关的类有如下几个: 1. NSDate:表示一个绝对的时间点 2. NSTimeZone:时区信息 3. NSLocale:本地化信息 4. NSDateComponents:一个封装了具体年月日.时秒分.周.季度等的类 5. NSCalendar:日历类,它提供了大部分的日期计算接口 6. NSDateFormatter:用来在日期和字符串之间转换 二.NSDate

js Date 日期格式化(转)

var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();    //获取完整的年份(4位,1970-????)myDate.getMonth();       //获取当前月份(0-11,0代表1月)myDate.getDate();        //获取当前日(1-31)myDate.getDay();         //获取当前星期X(0-6,0代表星期天)myDate.getTi

PHP 日期格式化和日期计算以及获取当前周、月头尾日期

PHP 日期格式化和日期计算以及当获取前周.月头尾日期 PHP 日期格式化示例代码: /** * 格式化时间 * $type:类型 * $strDate:需要处理的时间字符串 * * 年份 Y:四位年份 y:两位年份 * 月份 m: 两位数字月份 n: 一位数字月份 M:英文月 * 日期 d:两位数字日期 j:一位数字日期 D:英文日期 * 时:H .分:i .秒:s **/ public function GetFormatDate($type = 1,$strDate=''){ $time

php 日期 - 计算2个日期的差值

1 /** 2 * 日期-计算2个日期的差值 3 * @return int 4 */ 5 public function get_difference($date, $new_date) { 6 $date = strtotime($date); 7 $new_date = strtotime($new_date); 8 return abs(ceil(($date - $new_date)/86400)); 9 }

JS nodeJs 的日期计算

date-utils 前端引用 <script type="text/javascript" src="date-utils.min.js"></script> 下载传送门,猛击我 NODEJS服务端项目调用 $ cnpm install date-utils require('date-utils'); nodejs版本要求>0.6 API : Static Methods 静态方法 Date.today(); // today, 0