怎么通过批处理获取当前日期前一个月的日期

怎么通过批处理获取当前日期前一个月的日期,第1张

@echo off

title 获取上月日期 By HiSen QQ:185867604

echo 正在获取中。。。。

setlocal enabledelayedexpansion

set mm=%date:~0,7%

set _mm=%mm:-=%

set nn=%_mm:~-2%

if %nn% neq 10 set _nn=%nn:0=% &goto two

set _nn=%nn%

:two

set /a xx=%_nn%-1

set yy=%_mm:~0,4%

set _yy=%yy: =%

if %xx% equ 0 (

set /a m=%_yy%-1

echo !m!12>syrqdat

) else (

set _xx=00!xx!

echo %yy%!_xx:~-2!

)

endlocal

pause

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

public class Main {

private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String args[]) {

Date d = new Date();

// 月初

Systemoutprintln("月初" + sdfformat(getMonthStart(d)));

// 月末

Systemoutprintln("月末" + sdfformat(getMonthEnd(d)));

Date date = getMonthStart(d);

Date monthEnd = getMonthEnd(d);

while (!dateafter(monthEnd)) {

Systemoutprintln(sdfformat(date));

date = getNext(date);

}

}

private static Date getMonthStart(Date date) {

Calendar calendar = CalendargetInstance();

calendarsetTime(date);

int index = calendarget(CalendarDAY_OF_MONTH);

calendaradd(CalendarDATE, (1 - index));

return calendargetTime();

}

private static Date getMonthEnd(Date date) {

Calendar calendar = CalendargetInstance();

calendarsetTime(date);

calendaradd(CalendarMONTH, 1);

int index = calendarget(CalendarDAY_OF_MONTH);

calendaradd(CalendarDATE, (-index));

return calendargetTime();

}

private static Date getNext(Date date) {

Calendar calendar = CalendargetInstance();

calendarsetTime(date);

calendaradd(CalendarDATE, 1);

return calendargetTime();

}

}

这是一个月的 你改改就能写出上个月的了吧

是不是bcd输出的就是当前月的前一个月的数据,所以日期要是比这个月早一个月?如过是的话,在bcp之前加入下面这些批处理就好了,当然 bcd 输出的那一行好改相应的变量哦,注意看了~

set /a "y=%date:~0,4%"

if "%date:~5,1%"=="0" (set /a "m=%date:~6,1%") else (set /a "m=%date:~5,2%")

if %m%==1 ( set /a "m=12" & set /a "y=%y%-1") else (set /a "m=%m%-1")

bcp masterdbofm_report_month out "e:\fm_report\%y%-%m%_hwbbxmtxt" -c -t "_+|" -r "\n" -U"sa" -P"pwd" -S"sdfad-1mv453x"

楼主应该不会使用的是如何取去年,或者上个月吧?

其实有很多种获取方法,比如:

convert(nvarchar(7),dateadd(month,-1,getdate()),23)--获取上个月,出现格式2016-12

year(getdate())-1 --上一年

另外可以再介绍几种常用函数:

getdate()--获取当前时间

year(时间字段)--获取时间字段的年

Month(时间字段)--获取时间字段的月

Day(时间字段)--获取时间字段的日

Dateadd(时间类型,相距数量,时间字段)--计算与时间字段相距的日期,时间类型可以是年月日时分秒等等

Datediff(时间类型,时间1,时间2)--计算两个时间的时间差,类型与上一个一致

以上就是关于怎么通过批处理获取当前日期前一个月的日期全部的内容,包括:怎么通过批处理获取当前日期前一个月的日期、java 根据日期获取当月所有日期,和 上个月所有日期、批处理 获取date的上个月份的yyyy-mm等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9299797.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存