某年某月的某一天

某年某月的某一天
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 58(31 users) Total Accepted: 32(26 users) Rating: Special Judge: No
Description

因为大雄考了有史以来也是唯一一次的100分,叮当猫答应带大雄去未来看一看。但是笨蛋大雄把时光机的时间调错了,结果回到了古代。叮当猫的时光机是这么用的:输入一个数n,时光机就会去到n天后或者是n天前,然后选择是往未来还是回古代。但是大雄只记得输入n天,忘了选择是去未来了。

现在告诉你大雄输入的天数,请你算出本来他们打算去的是未来哪一天以及现在在古代的哪一天。以今天,即2013年9月7号为当前天数,即算出2013年9月7号的n天前和n天后是几年几月几日。

Input

第一行输入一个数T,表示有T组样例。

接下来T行是T组数据,每组数据包含一个正整数n(n<=100000)。

Output

请计算并输出大雄本来打算去的未来的某年某月某日,以及最后去了的古代的某年某月某日。

输出日期格式为YYYY/MM/DD,两个日期中间用一个空格隔开,每组数据占一行,详情参考simple output。

Sample Input

3

18

26

31

Sample Output

2013/09/25 2013/08/20

2013/10/03 2013/08/12

2013/10/08 2013/08/07

Author
曾卓敏

做麻烦了

我的代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
bool check(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return true;
}
return false;
}
int year,month,day;
void up(int n)
{
year=2013;
month=9;
day=7;
if(n>=24)
{
n-=24;
month=10;
day=1;
}
while(n>0)
{
if(month==2)
{
if(check(year))
{
if(n>=29)
{
n-=29;
month++;
day=1;
}
else
{
day+=n;
n=0;

}
}
else
{
if(n>=28)
{
n-=28;
month++;
day=1;
}
else
{
day+=n;
n=0;

}
}
}
else if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
{
if(n>=31)
{
n-=31;
month++;
if(month>12)
{
year++;
month=1;
}
day=1;
}
else
{
day+=n;
n=0;
}
}
else
{
if(n>=30)
{
n-=30;
month++;
day=1;
}
else
{
day+=n;
n=0;
}
}
}
}
void down(int n)
{
year=2013;
month=9;
day=7;
if(n>=7)
{
n-=7;
day=31;
month--;
}
while(n>0)
{
if(month==3)
{
if(n>=31)
{
if(check(year))
{
n-=31;
month--;
day=29;
}
else
{
n-=31;
month--;
day=28;
}
}
else
{
day-=n;
n=0;
}
}
else if((month==1)||(month==8))
{
if(n>=31)
{
month--;
if(month==0)
{
year--;
month=12;
}
day=31;
n-=31;
}
else
{
day-=n;
n=0;
}
}
else if((month==5)||(month==7)||(month==10)||(month==12))
{
if(n>=31)
{
month--;
day=30;
n-=31;
}
else
{
day-=n;
n=0;
}
}
else if(month==2)
{
if(check(year))
{
if(n>=29)
{
n-=29;
day=31;
month--;
}
else
{
day-=n;
n=0;
}
}
else
{
if(n>=28)
{
n-=28;
day=31;
month--;
}
else
{
day-=n;
n=0;
}
}
}
else
{
if(n>=30)
{
n-=30;
month--;
day=31;
}
else
{
day-=n;
n=0;
}
}
}
}

int main()
{
int T;
while(~scanf("%d",&T))
{
while(T--)
{
int n;
scanf("%d",&n);
up(n);
printf("%04d/%02d/%02d ",year,month,day);
down(n);
printf("%04d/%02d/%02d\n",year,month,day);
}
}
return 0;
}

时间: 2024-10-01 07:14:42

某年某月的某一天的相关文章

判断某年某月的天数

1 #include<stdio.h> 2 #include<stdlib.h> 3 //判断指定的某年某月有多少天 4 void main() 5 { 6 int year,month; 7 int leap,days; 8 printf("please input a year ,month\n"); 9 scanf("%d-%d",&year,&month); 10 if((year%4==0)&&(ye

Js获取当前日期时间+日期印证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天

Js获取当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天 字符串转日期型+Js当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+日期所在年的第几周 日期时间脚本库方法列表Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符

php判断某年某月有多少天

<?php function yearMonthDays($year,$month){ if (in_array($month, array(1, 3, 5, 7, 8, 01, 03, 05, 07, 08, 10, 12))) {   return '31';   }elseif ($month == 2){   if ($year % 400 == 0 || ($year % 4 == 0 && $year % 100 !== 0)) {        //判断是否是闰年  

获取某年某月有多少天 &amp; 常用日期转换

1 private void Form1_Load(object sender, EventArgs e) 2 { 3 DateTime date=System.DateTime.Today;//只有日期 4 //System.DateTime.Now; //日期+时间 5 int year= date.Year; 6 int month=date.Month; 7 8 int daysNum=System.DateTime.DaysInMonth(year,month);//返回某年某月有多少

JavaScript获取某年某月的最后一天

1.实现源码 <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the template in the editor. --> <html> <head> <title>Jav

把秒转换成分钟/返回某年某月最后一天返回时间差

using System; using System.Collections.Generic; using System.Text; namespace AIMSCommon { public class TimeParser { /// <summary> /// 把秒转换成分钟 /// </summary> /// <returns></returns> public static int SecondToMinute(int Second) { dec

Java获取某年某月的第一天

1.设计源代码 FisrtDayOfMonth.java: /** * @Title:FisrtDayOfMonth.java * @Package:com.you.freemarker.model * @Description:获取某年某月的第一天 * @author:Youhaidong(游海东) * @date:2014-5-29 下午11:21:31 * @version V1.0 */ package com.you.freemarker.model; import java.text

Java获取某年某月的最后一天

1.设计源码 LastDayOfMonth.java: /** * @Title:LastDayOfMonth.java * @Package:com.you.freemarker.model * @Description:获取某月的最后一天 * @author:Youhaidong(游海东) * @date:2014-5-29 下午10:58:20 * @version V1.0 */ package com.you.freemarker.model; import java.text.Sim

Java实验项目二——打印某年某月日历

Program:打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一), 要 求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算某年某月前距离1900年1月1日的总天数:(4)编写一个输出某年某月日历的方法: (5)编写一个测试方法. Description:该项目由多个类实现,最后类为main方法的调用.代码如下: 1 /* 2 *Description:定义工具类 3 * 4 * */ 5 6 package tools